psychedelicious
03ae65863c
tidy(ui): abstract stage logic into module
2024-09-06 22:56:24 +10:00
psychedelicious
3b7b6d6404
feat(ui): add entity group hiding
2024-09-06 22:56:24 +10:00
psychedelicious
e9171c80f6
feat(ui): move all caching out of redux
...
While we lose the benefit of the caches persisting across reloads, this is a much simpler way to handle things. If we need a persistent cache, we can explore it in the future.
2024-09-06 22:56:24 +10:00
psychedelicious
0fd3881b3a
feat(ui): revised rasterization caching
...
- use `stable-hash` to generate stable, non-crypto hashes for cache entries, instead of using deep object comparisons
- use an object to store image name caches
2024-09-06 22:56:24 +10:00
psychedelicious
01ac4c3b3e
feat(ui): revise filter implementation
2024-09-06 22:56:24 +10:00
psychedelicious
f1fcc98a09
fix(ui): add button to delete inpaint mask
2024-09-06 22:56:24 +10:00
psychedelicious
b2823569f0
feat(ui): add contexts/hooks to access entity adapters directly
2024-09-06 22:56:24 +10:00
psychedelicious
3bd98e62de
feat(ui): add CanvasManagerProviderGate
...
This context waits to render its children its until the canvas manager is available. Then its children have access to the manager directly via hook.
2024-09-06 22:56:24 +10:00
psychedelicious
318672be53
feat(ui) do not set $canvasManager until ready
2024-09-06 22:56:24 +10:00
psychedelicious
c5a05691fe
fix(ui): inpaint mask naming
2024-09-06 22:56:24 +10:00
psychedelicious
04fcb9e8e6
feat(ui): efficient canvas compositing
...
Also solves issue of exporting layers at different opacities than what is visible
2024-09-06 22:56:24 +10:00
psychedelicious
a1534b6503
feat(ui): allow multiple inpaint masks
...
This is easier than making it a nullable singleton
2024-09-06 22:56:24 +10:00
psychedelicious
0aa4b1575d
fix(ui): missing rasterization cache invalidations
2024-09-06 22:56:24 +10:00
psychedelicious
85eb6ad616
feat(ui): iterate on filter UI, flow
2024-09-06 22:56:24 +10:00
psychedelicious
9fd2841df0
fix(ui): rehydration data loss
2024-09-06 22:56:24 +10:00
psychedelicious
bd23dcd751
feat(ui): sort log namespaces
2024-09-06 22:56:24 +10:00
psychedelicious
4d480093d9
fix(ui): do not merge arrays by index during rehydration
2024-09-06 22:56:24 +10:00
psychedelicious
bb0d2b6ce2
fix(ui): clone parsed data during state rehydration
...
Without this, the objects and arrays in `parsed` could be mutated, and the log statment would show the mutated data.
2024-09-06 22:56:24 +10:00
psychedelicious
0d863a876b
fix(ui): fix logger filter
...
was accidetnally replacing the filter instead of appending to it.
2024-09-06 22:56:24 +10:00
psychedelicious
3fadfd3bbb
fix(ui): race condition queue status
...
Sequence of events causing the race condition:
- Enqueue batch
- Invalidate `SessionQueueStatus` tag
- Request updated queue status via HTTP - batch still processing at this point
- Batch completes
- Event emitted saying so
- Optimistically update the queue status cache, it is correct
- HTTP request makes it back and overwrites the optimistic update, indicating the batch is still in progress
FIxed by not invalidating the cache.
2024-09-06 22:56:24 +10:00
psychedelicious
401152f16f
fix(ui): handle opacity for masks
2024-09-06 22:56:24 +10:00
psychedelicious
b69350e9ee
feat(ui): default background to checkerboard
2024-09-06 22:56:24 +10:00
psychedelicious
7b429e0a54
feat(ui): clean up logging namespaces, allow skipping namespaces
2024-09-06 22:56:24 +10:00
psychedelicious
3d23fe1fe0
chore(ui): bump ui library
2024-09-06 22:56:24 +10:00
psychedelicious
d4117f5595
fix(ui): do not allow drawing if layer disabled
2024-09-06 22:56:24 +10:00
psychedelicious
2686210887
fix(ui): stale state causing race conditions & extraneous renders
2024-09-06 22:56:24 +10:00
psychedelicious
9a804b7986
fix(ui): do not clear buffer when rendering "real" objects
2024-09-06 22:56:24 +10:00
psychedelicious
ef0699310d
tidy(ui): remove "filter" from CanvasImageState
2024-09-06 22:56:24 +10:00
psychedelicious
afa2da3d2d
feat(ui): better editable title
2024-09-06 22:56:24 +10:00
psychedelicious
ac1132b5bc
fix(ui): stroke eraserline
2024-09-06 22:56:24 +10:00
psychedelicious
0276dac38f
feat(ui): restore transparency effect for control layers
2024-09-06 22:56:24 +10:00
psychedelicious
5a3dd83167
feat(ui): use text cursor for entity title
2024-09-06 22:56:24 +10:00
psychedelicious
9f587009cd
tidy(ui): remove extraneous logging in CanvasStateApi
2024-09-06 22:56:24 +10:00
psychedelicious
c5ed5e866e
feat(ui): better buffer commit logic
2024-09-06 22:56:24 +10:00
psychedelicious
1f10bc1d63
feat(ui): render buffer separately from "real" objects
2024-09-06 22:56:24 +10:00
psychedelicious
311451b3c9
fix(ui): pixelRect should always be integer
2024-09-06 22:56:24 +10:00
psychedelicious
a48e5d9cb0
fix(ui): only update stage attrs when stage itself is dragged
2024-09-06 22:56:24 +10:00
psychedelicious
ad92010778
feat(ui): add line simplification
...
This fixes some awkward issues where line segments stack up.
2024-09-06 22:56:24 +10:00
psychedelicious
01e8988fcc
fix(ui): various things listening when they need not listen
2024-09-06 22:56:24 +10:00
psychedelicious
d6fec0a0df
feat(ui): layer opacity via caching
2024-09-06 22:56:24 +10:00
psychedelicious
37dc7ee595
feat(ui): reset view fits all visible objects
2024-09-06 22:56:24 +10:00
psychedelicious
6d79dc61d2
fix(ui): rerenders when changing canvas scale
2024-09-06 22:56:24 +10:00
psychedelicious
966bc67001
fix(ui): do not render rasterized layer unless renderObjects=true
2024-09-06 22:56:24 +10:00
psychedelicious
4c66a0dcd0
feat(ui): revise app layout strategy, add interaction scopes for hotkeys
2024-09-06 22:56:24 +10:00
psychedelicious
50051ee147
feat(ui): tweak mask patterns
2024-09-06 22:56:24 +10:00
psychedelicious
621f12a1bc
fix(ui): dynamic prompts recalcs when presets are loaded
2024-09-06 22:56:24 +10:00
psychedelicious
741b22041d
fix(ui): use style preset prompts correctly
2024-09-06 22:56:24 +10:00
psychedelicious
f358bb9364
fix(ui): discard selected staging image not all other images
2024-09-06 22:56:24 +10:00
psychedelicious
65bbc0f00f
fix(ui): respect image size in staging preview
2024-09-06 22:56:24 +10:00
psychedelicious
7bf0e554ea
tidy(ui): cleanup after events change
2024-09-06 22:56:24 +10:00