Commit Graph

8317 Commits

Author SHA1 Message Date
psychedelicious
fef70fdac0 fix(ui): memory leak when getting image DTO
must unsubscribe!
2024-09-06 21:27:37 +10:00
psychedelicious
62eb00aacf feat(ui): rework settings menu 2024-09-06 21:27:37 +10:00
psychedelicious
3f41ea574b feat(ui): no entities fallback buttons 2024-09-06 21:27:37 +10:00
psychedelicious
e865c1a2b5 perf(ui): optimize gallery image delete button rendering 2024-09-06 21:27:37 +10:00
psychedelicious
f4a798c64f feat(ui): remove "solid" background option 2024-09-06 21:27:37 +10:00
psychedelicious
7806604666 tidy(ui): organise files and classes 2024-09-06 21:27:37 +10:00
psychedelicious
917f8087b4 tidy(ui): abstract compositing logic to module 2024-09-06 21:27:37 +10:00
psychedelicious
b7a9a6153a fix(ui): fix canvas cache property access 2024-09-06 21:27:37 +10:00
psychedelicious
fdc5f89060 tidy(ui): clean up CanvasFilter class 2024-09-06 21:27:37 +10:00
psychedelicious
7fc0959c83 tidy(ui): clean up a few bits and bobs 2024-09-06 21:27:37 +10:00
psychedelicious
95ff64d1d6 tidy(ui): abstract canvas rendering logic to module 2024-09-06 21:27:37 +10:00
psychedelicious
67f94007d0 tidy(ui): abstract caching logic to module 2024-09-06 21:27:37 +10:00
psychedelicious
930f27d009 tidy(ui): abstract worker logic to module 2024-09-06 21:27:37 +10:00
psychedelicious
6125e0fd13 tidy(ui): abstract stage logic into module 2024-09-06 21:27:37 +10:00
psychedelicious
c8e8cf9dfb feat(ui): add entity group hiding 2024-09-06 21:27:37 +10:00
psychedelicious
ac8122a154 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 21:27:37 +10:00
psychedelicious
aa7c909f14 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 21:27:37 +10:00
psychedelicious
40d294b29c feat(ui): revise filter implementation 2024-09-06 21:27:36 +10:00
psychedelicious
ff1fd5b5b5 fix(ui): add button to delete inpaint mask 2024-09-06 21:27:36 +10:00
psychedelicious
6aa87d7df2 feat(ui): add contexts/hooks to access entity adapters directly 2024-09-06 21:27:36 +10:00
psychedelicious
7732eeb815 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 21:27:36 +10:00
psychedelicious
9eb37feb6c feat(ui) do not set $canvasManager until ready 2024-09-06 21:27:36 +10:00
psychedelicious
e3b38339a0 fix(ui): inpaint mask naming 2024-09-06 21:27:36 +10:00
psychedelicious
f92695e677 feat(ui): efficient canvas compositing
Also solves issue of exporting layers at different opacities than what is visible
2024-09-06 21:27:36 +10:00
psychedelicious
9473d54fc7 feat(ui): allow multiple inpaint masks
This is easier than making it a nullable singleton
2024-09-06 21:27:36 +10:00
psychedelicious
33783eae4f fix(ui): missing rasterization cache invalidations 2024-09-06 21:27:36 +10:00
psychedelicious
f6c3570c26 feat(ui): iterate on filter UI, flow 2024-09-06 21:27:36 +10:00
psychedelicious
96a76a763e fix(ui): rehydration data loss 2024-09-06 21:27:36 +10:00
psychedelicious
209bc925c0 feat(ui): sort log namespaces 2024-09-06 21:27:36 +10:00
psychedelicious
a77fb427d0 fix(ui): do not merge arrays by index during rehydration 2024-09-06 21:27:36 +10:00
psychedelicious
6fc358b9ea 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 21:27:36 +10:00
psychedelicious
742ac3088d fix(ui): fix logger filter
was accidetnally replacing the filter instead of appending to it.
2024-09-06 21:27:36 +10:00
psychedelicious
8b958e5280 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 21:27:36 +10:00
psychedelicious
71c727e586 fix(ui): handle opacity for masks 2024-09-06 21:27:36 +10:00
psychedelicious
c590e8bd6f feat(ui): default background to checkerboard 2024-09-06 21:27:36 +10:00
psychedelicious
71a13c3e91 feat(ui): clean up logging namespaces, allow skipping namespaces 2024-09-06 21:27:36 +10:00
psychedelicious
d7e7f049e7 chore(ui): bump ui library 2024-09-06 21:27:36 +10:00
psychedelicious
b23332e167 fix(ui): do not allow drawing if layer disabled 2024-09-06 21:27:36 +10:00
psychedelicious
21c637c365 fix(ui): stale state causing race conditions & extraneous renders 2024-09-06 21:27:36 +10:00
psychedelicious
2b7aecb346 fix(ui): do not clear buffer when rendering "real" objects 2024-09-06 21:27:36 +10:00
psychedelicious
5c669f7925 tidy(ui): remove "filter" from CanvasImageState 2024-09-06 21:27:36 +10:00
psychedelicious
748f445de5 feat(ui): better editable title 2024-09-06 21:27:36 +10:00
psychedelicious
2127ee9a09 fix(ui): stroke eraserline 2024-09-06 21:27:36 +10:00
psychedelicious
7ccb1c5938 feat(ui): restore transparency effect for control layers 2024-09-06 21:27:36 +10:00
psychedelicious
26d1a2ebfe feat(ui): use text cursor for entity title 2024-09-06 21:27:36 +10:00
psychedelicious
e0bd683d88 tidy(ui): remove extraneous logging in CanvasStateApi 2024-09-06 21:27:36 +10:00
psychedelicious
3c5332b236 feat(ui): better buffer commit logic 2024-09-06 21:27:36 +10:00
psychedelicious
d4e847bd9a feat(ui): render buffer separately from "real" objects 2024-09-06 21:27:36 +10:00
psychedelicious
cee16536cd fix(ui): pixelRect should always be integer 2024-09-06 21:27:36 +10:00
psychedelicious
811e75dc67 fix(ui): only update stage attrs when stage itself is dragged 2024-09-06 21:27:36 +10:00