psychedelicious
fc558094c2
tidy(ui): rename canvas stuff
2024-08-23 19:46:04 +10:00
psychedelicious
ad9312e989
tidy(ui): consolidate getLoggingContext builders
2024-08-23 19:46:04 +10:00
psychedelicious
8e1a70b008
fix(ui): align all tools to 1px grid
...
- Offset brush tool by 0.5px when width is odd, ensuring each stroke edge is exactly on a pixel boundary
- Round the rect tool also
2024-08-23 19:46:04 +10:00
psychedelicious
17f88cd5ad
feat(ui): disable image smoothing on layers
2024-08-23 19:46:04 +10:00
psychedelicious
298f1919fa
fix(ui): round position when rasterizing layer
2024-08-23 19:46:04 +10:00
psychedelicious
4d20cc11d4
feat(ui): continue modularizing transform
2024-08-23 19:46:04 +10:00
psychedelicious
14f249a2f0
feat(ui): fix a few things that didn't unsubscribe correctly, add helper to manage subscriptions
2024-08-23 19:46:04 +10:00
psychedelicious
b9746a6c2c
feat(ui): merge bbox outline into transformer
2024-08-23 19:46:04 +10:00
psychedelicious
94f298a6f4
fix(ui): update parent's pos not transformers
2024-08-23 19:46:04 +10:00
psychedelicious
8d3a8178da
feat(ui): merge interaction rect into transformer class
2024-08-23 19:46:04 +10:00
psychedelicious
cad4212fe8
feat(ui): prepare staging area
2024-08-23 19:46:04 +10:00
psychedelicious
cff28dfaa9
feat(ui): typing for logging context
2024-08-23 19:46:04 +10:00
psychedelicious
70d7509fcc
feat(ui): remove inheritance of CanvasObject
...
JS is terrible
2024-08-23 19:46:04 +10:00
psychedelicious
cf83af7a27
feat(ui): split & document transformer logic, iterate on class structures
2024-08-23 19:46:04 +10:00
psychedelicious
5c5a405c0f
feat(ui): rotation snap to nearest 45deg when holding shift
2024-08-23 19:46:04 +10:00
psychedelicious
0208e4b232
feat(ui): expose subscribe method for nanostores
2024-08-23 19:46:04 +10:00
psychedelicious
e940754795
tidy(ui): remove layer scaling reducers
2024-08-23 19:46:04 +10:00
psychedelicious
dc9fa1a735
fix(ui): pixel-perfect transforms
2024-08-23 19:46:04 +10:00
psychedelicious
08591fbf6d
fix(ui): layer visibility toggle
2024-08-23 19:46:04 +10:00
psychedelicious
74db71bb5d
fix(nodes): fix canvas mask erode
...
it wasn't eroding enough and caused incorrect transparency in result images
2024-08-23 19:46:04 +10:00
psychedelicious
60dbe798a5
fix(ui): do not reset layer on first render
2024-08-23 19:46:04 +10:00
psychedelicious
0e676605fe
feat(ui): revised logging and naming setup, fix staging area
2024-08-23 19:46:04 +10:00
psychedelicious
3f781016f6
feat(ui): add repr
methods to layer and object classes
2024-08-23 19:46:04 +10:00
psychedelicious
17cd2f6b02
feat(ui): use nanoid(10) instead of uuidv4 for canvas
...
Shorter ids makes it much more readable
2024-08-23 19:46:04 +10:00
psychedelicious
99102a1b34
build(ui): add nanoid as explicit dep
2024-08-23 19:46:04 +10:00
psychedelicious
8d72e7d9e8
fix(ui): move CanvasImage's konva image to correct object
2024-08-23 19:46:04 +10:00
psychedelicious
0b6b6f97ad
fix(ui): prevent flash when applying transform
2024-08-23 19:46:04 +10:00
psychedelicious
fb2f6382b1
build(ui): add eslint rules for async stuff
2024-08-23 19:46:04 +10:00
psychedelicious
1ddea87c35
feat(ui): trying to fix flicker after transform
2024-08-23 19:46:04 +10:00
psychedelicious
ea02323095
feat(ui): transform cleanup
2024-08-23 19:46:04 +10:00
psychedelicious
49733091c7
feat(ui): fix transform when rotated
2024-08-23 19:46:04 +10:00
psychedelicious
cf833fd6e2
fix(ui): use pixel bbox when image is in layer
2024-08-23 19:46:04 +10:00
psychedelicious
ba5cf07ab8
fix(ui): transforming when axes flipped
2024-08-23 19:46:04 +10:00
psychedelicious
d15321a373
feat(ui): hallelujah (???)
2024-08-23 19:46:04 +10:00
psychedelicious
de597a5eb4
feat(ui): add debug button
2024-08-23 19:46:04 +10:00
psychedelicious
e5f5cbdf5c
fix(ui): transformer padding
2024-08-23 19:46:04 +10:00
psychedelicious
7d4342bbff
feat(ui): wip transform mode 2
2024-08-23 19:46:04 +10:00
psychedelicious
7f8a1d8d20
feat(ui): wip transform mode
2024-08-23 19:46:04 +10:00
psychedelicious
65353ac1e1
feat(ui): wip transform mode
2024-08-23 19:46:04 +10:00
psychedelicious
7f9a31ca4a
fix(ui): dnd to canvas broke
2024-08-23 19:46:04 +10:00
psychedelicious
592eb2886c
fix(ui): conflicts after rebasing
2024-08-23 19:46:04 +10:00
psychedelicious
c220dd8987
fix(ui): imageDropped listener
2024-08-23 19:46:04 +10:00
psychedelicious
a263beb0d5
wip
2024-08-23 19:46:04 +10:00
psychedelicious
46b7c510eb
fix(ui): transform tool seems to be working
2024-08-23 19:46:04 +10:00
psychedelicious
f405e472ea
fix(ui): move tool fixes, add transform tool
2024-08-23 19:46:04 +10:00
psychedelicious
7bdfd3ef5f
feat(ui): move tool now only moves
2024-08-23 19:46:04 +10:00
psychedelicious
778ee2c679
feat(ui): layer bbox calc in worker
2024-08-23 19:46:04 +10:00
psychedelicious
e70339ff3e
feat(ui): tweaked entity & group selection styles
2024-08-23 19:46:04 +10:00
psychedelicious
88c57a9750
feat(ui): canvas entity list headers
2024-08-23 19:46:04 +10:00
psychedelicious
137252128b
tidy(ui): CanvasRegion
2024-08-23 19:46:04 +10:00
psychedelicious
d4297b1345
tidy(ui): CanvasRect
2024-08-23 19:46:04 +10:00
psychedelicious
6059bc7b47
tidy(ui): CanvasLayer
2024-08-23 19:46:04 +10:00
psychedelicious
c3ff3eb51f
tidy(ui): CanvasInpaintMask
2024-08-23 19:46:04 +10:00
psychedelicious
0b7751c413
tidy(ui): CanvasInitialImage
2024-08-23 19:46:04 +10:00
psychedelicious
d7f1c30624
tidy(ui): CanvasImage
2024-08-23 19:46:04 +10:00
psychedelicious
3f4d7dbeea
tidy(ui): CanvasEraserLine
2024-08-23 19:46:04 +10:00
psychedelicious
19b6ae2907
tidy(ui): CanvasControlAdapter
2024-08-23 19:46:04 +10:00
psychedelicious
769f96ff9f
tidy(ui): CanvasBrushLine
2024-08-23 19:46:04 +10:00
psychedelicious
fdaf75faa4
tidy(ui): CanvasBbox
2024-08-23 19:46:04 +10:00
psychedelicious
1380bb7ae6
tidy(ui): CanvasBackground
2024-08-23 19:46:04 +10:00
psychedelicious
9483c8cc29
tidy(ui): update canvas classes, organise location of konva nodes
2024-08-23 19:46:04 +10:00
psychedelicious
2ef8a8cf5a
feat(ui): add names to all konva objects
...
Makes troubleshooting much simpler
2024-08-23 19:46:04 +10:00
psychedelicious
d296ec1932
fix(ui): do not await creating new canvas image
...
If you await this, it causes a race condition where multiple images are created.
2024-08-23 19:46:04 +10:00
psychedelicious
444ad3dae1
feat(ui): use position
and dimensions
instead of separate x,y,width,height attrs
2024-08-23 19:46:04 +10:00
psychedelicious
8cdcc71378
fix(ui): remove weird rtkq hook wrapper
...
I do not understand why I did that initially but it doesn't work with TS.
2024-08-23 19:46:04 +10:00
psychedelicious
e8bc06cfd3
feat(ui): rename types size and position to dimensions and coordinate
2024-08-23 19:46:04 +10:00
psychedelicious
67a0a024e9
tidy(ui): hide layer settings by default
2024-08-23 19:46:04 +10:00
psychedelicious
bd2c46c267
fix(ui): layer rendering when starting as disabled
2024-08-23 19:46:04 +10:00
psychedelicious
5acb27f350
feat(invocation): reduce canvas v2 mask & crop mask dilation
2024-08-23 19:46:04 +10:00
psychedelicious
7271b12d0f
feat(ui): de-jank staging area and progress images
2024-08-23 19:46:04 +10:00
psychedelicious
4a79467a33
feat(ui): update staging handling to work w/ cropped mask
2024-08-23 19:46:04 +10:00
psychedelicious
5501bb87a3
chore(ui): typegen
2024-08-23 19:46:04 +10:00
psychedelicious
561610e296
feat(app): update CanvasV2MaskAndCropInvocation
2024-08-23 19:46:04 +10:00
psychedelicious
b76609ef18
feat(ui): use new canvas output node
2024-08-23 19:46:04 +10:00
psychedelicious
070b78501b
chore(ui): typegen
2024-08-23 19:46:04 +10:00
psychedelicious
50df4f4ab6
feat(app): add CanvasV2MaskAndCropInvocation & CanvasV2MaskAndCropOutput
...
This handles some masking and cropping that the canvas needs.
2024-08-23 19:46:04 +10:00
psychedelicious
9bbf430125
fix(ui): restore nodes output tracking
2024-08-23 19:46:04 +10:00
psychedelicious
384a90958a
feat(ui): rip out document size
...
barely knew ye
2024-08-23 19:46:04 +10:00
psychedelicious
0e4a25b029
feat(ui): convert initial image to layer when starting canvas session
2024-08-23 19:46:04 +10:00
psychedelicious
4a44e171fd
fix(ui): fix layer transparency calculation
2024-08-23 19:46:04 +10:00
psychedelicious
9bc57a6f59
fix(ui): reset initial image when resetting canvas
2024-08-23 19:46:03 +10:00
psychedelicious
4341ed7ab4
fix(ui): reset node executions states when loading workflow
2024-08-23 19:46:03 +10:00
psychedelicious
97ce72c542
fix(ui): entity display list
2024-08-23 19:46:03 +10:00
psychedelicious
a2c78a57a7
feat(ui): img2img working
2024-08-23 19:46:03 +10:00
psychedelicious
044a713dc9
feat(ui): rough out img2img on canvas
2024-08-23 19:46:03 +10:00
psychedelicious
b8479c5fe2
UNDO ME WIP
2024-08-23 19:46:03 +10:00
psychedelicious
4e5d056824
feat(ui): log invocation source id on socket event
2024-08-23 19:46:03 +10:00
psychedelicious
118278b372
feat(ui): restore document size overlay renderer
2024-08-23 19:46:03 +10:00
psychedelicious
8e8c255f3f
feat(ui): make documnet size a rect
2024-08-23 19:46:03 +10:00
psychedelicious
1575bee401
refactor(ui): remove modular imagesize components
...
This is no longer necessary with canvas v2 and added a ton of extraneous redux actions when changing the image size. Also renamed to document size
2024-08-23 19:46:03 +10:00
psychedelicious
249bbfc883
feat(ui): initialState is for generation mode
2024-08-23 19:46:03 +10:00
psychedelicious
3993ae410f
feat(ui): split out canvas entity list component
2024-08-23 19:46:03 +10:00
psychedelicious
edf040e3d2
feat(ui): hide bbox button when no canvas session active
2024-08-23 19:46:03 +10:00
psychedelicious
66fd077ee7
tidy(ui): remove unused naming objects/utils
...
The canvas manager means we don't need to worry about konva node names as we never directly select konva nodes.
2024-08-23 19:46:03 +10:00
psychedelicious
b93462ebb6
feat(ui): split up tool chooser buttons
...
Prep for distinct toolbars for generation vs canvas modes
2024-08-23 19:46:03 +10:00
psychedelicious
d4da00e607
feat(ui): "stagingArea" -> "session"
2024-08-23 19:46:03 +10:00
psychedelicious
0c539ff00b
feat(ui): add reset button to canvas
2024-08-23 19:46:03 +10:00
psychedelicious
5983cbf26c
feat(ui): add snapToRect util
2024-08-23 19:46:03 +10:00
psychedelicious
c513d6e3af
fix(ui): fiddle with control adapter filters
...
some jank still
2024-08-23 19:46:03 +10:00
psychedelicious
9d57c0e631
feat(ui): temp disable doc size overlay
2024-08-23 19:46:03 +10:00
psychedelicious
a1923a8966
feat(ui): no animation on layer selection
...
Felt sluggish
2024-08-23 19:46:03 +10:00
psychedelicious
d988e18731
feat(ui): use canvas as source for control images (wip)
2024-08-23 19:46:03 +10:00
psychedelicious
51008da2dd
fix(ui): control adapter translate & scale
2024-08-23 19:46:03 +10:00
psychedelicious
6ccc1f5672
tidy(ui): removed unused state related to non-buffered drawing
2024-08-23 19:46:03 +10:00
psychedelicious
4a556f84e0
feat(ui): control adapter image rendering
2024-08-23 19:46:03 +10:00
psychedelicious
2f21a2220d
fix(ui): do not floor bbox calc, it cuts off the last pixels
2024-08-23 19:46:03 +10:00
psychedelicious
91a420b13e
feat(ui): fix issue where creating line needs 2 points
2024-08-23 19:46:03 +10:00
psychedelicious
c27da3581b
fix(ui): edge cases when holding shift and drawing lines
2024-08-23 19:46:03 +10:00
psychedelicious
961dfbce93
fix(ui): set buffered rect color to full alpha
2024-08-23 19:46:03 +10:00
psychedelicious
df39c825ae
fix(ui): handle mouseup correctly
2024-08-23 19:46:03 +10:00
psychedelicious
3f6ee1b7a4
feat(ui): buffered rect drawing
2024-08-23 19:46:03 +10:00
psychedelicious
908e504a6f
fix(ui): buffered drawing edge cases
2024-08-23 19:46:03 +10:00
psychedelicious
f2fa41afc5
perf(ui): do not use stage.find
2024-08-23 19:46:03 +10:00
psychedelicious
440ff40ad5
perf(ui): object groups do not listen
2024-08-23 19:46:03 +10:00
psychedelicious
5c15458e15
perf(ui): buffered drawing (wip)
2024-08-23 19:46:03 +10:00
psychedelicious
be5b474f1e
tidy(ui): organise files
2024-08-23 19:46:03 +10:00
psychedelicious
cee178c2b6
tidy(ui): organise files
2024-08-23 19:46:03 +10:00
psychedelicious
27657f8b7a
tidy(ui): organise files
2024-08-23 19:46:03 +10:00
psychedelicious
e0cde3815a
fix(ui): background rendering
2024-08-23 19:46:03 +10:00
psychedelicious
09d0421de4
pkg(ui): remove unused deps react-konva & use-image
2024-08-23 19:46:03 +10:00
psychedelicious
47b94d563c
feat(ui): organize konva state and files
2024-08-23 19:46:03 +10:00
psychedelicious
0b5d20c9f0
fix(ui): merge conflicts in image deletion listener
2024-08-23 19:46:03 +10:00
psychedelicious
80e7e1293a
fix(ui): region rendering
2024-08-23 19:46:03 +10:00
psychedelicious
3a82b0cbc1
fix(ui): inpaint mask rendering
2024-08-23 19:46:03 +10:00
psychedelicious
a27cbc13b6
fix(ui): staging area rendering
2024-08-23 19:46:03 +10:00
psychedelicious
a8f962eb3f
fix(ui): stale selected entity
2024-08-23 19:46:03 +10:00
psychedelicious
7f40d23f19
fix(ui): staging area image offset
2024-08-23 19:46:03 +10:00
psychedelicious
918354cd9d
feat(ui): tweak layer ui component
2024-08-23 19:46:03 +10:00
psychedelicious
eef9278ee6
fix(ui): resetting layer resets position
2024-08-23 19:46:03 +10:00
psychedelicious
2c32e2e5c1
feat(ui): updated layer list component styling
2024-08-23 19:46:03 +10:00
psychedelicious
6f05654db5
feat(ui): transformable layers
2024-08-23 19:46:03 +10:00
psychedelicious
1d31b6902f
feat(ui): move tool icon is pointer like in other apps
2024-08-23 19:46:03 +10:00
psychedelicious
5a7d615e64
feat(ui): do not floor cursor position
2024-08-23 19:46:03 +10:00
psychedelicious
1dbf9e4ed4
feat(ui): disable gallery hotkeys while staging
2024-08-23 19:46:03 +10:00
psychedelicious
5dcc6ee203
feat(ui): revised canvas progress & staging image handling
2024-08-23 19:46:03 +10:00
psychedelicious
84a4e6ae3f
feat(ui): show queue item origin in queue list
2024-08-23 19:46:03 +10:00
psychedelicious
f283bfd68f
chore(ui): typegen
2024-08-23 19:46:03 +10:00
psychedelicious
6e5ff7b79c
feat(app): add origin to session queue
...
The origin is an optional field indicating the queue item's origin. For example, "canvas" when the queue item originated from the canvas or "workflows" when the queue item originated from the workflows tab. If omitted, we assume the queue item originated from the API directly.
- Add migration to add the nullable column to the `session_queue` table.
- Update relevant event payloads with the new field.
- Add `cancel_by_origin` method to `session_queue` service and corresponding route. This is required for the canvas to bail out early when staging images.
- Add `origin` to both `SessionQueueItem` and `Batch` - it needs to be provided initially via the batch and then passed onto the queue item.
-
2024-08-23 19:46:03 +10:00
psychedelicious
7c3800d03f
fix(ui): denoise start on outpainting
2024-08-23 19:46:03 +10:00
psychedelicious
941db90518
feat(ui): add redux events for queue cleared & batch enqueued socket events
2024-08-23 19:46:03 +10:00
psychedelicious
0d9ecf0f90
feat(ui): canvas staging area works
2024-08-23 19:46:03 +10:00
psychedelicious
9c77023a11
feat(ui): switch to view tool when staging
2024-08-23 19:46:03 +10:00
psychedelicious
b55378c63c
tidy(ui): disable preview images on every enqueue
2024-08-23 19:46:03 +10:00
psychedelicious
946c2a49ab
feat(ui): rough out save staging image
2024-08-23 19:46:03 +10:00
psychedelicious
b823c31ec6
feat(ui): staging area image visibility toggle
2024-08-23 19:46:03 +10:00
psychedelicious
ec6361e5cb
fix(ui): batch building after removing canvas files
2024-08-23 19:46:03 +10:00
psychedelicious
0c26d28278
feat(ui): make Graph class's getMetadataNode public
2024-08-23 19:46:03 +10:00
psychedelicious
c5172d4c5a
tidy(ui): remove old canvas graphs
2024-08-23 19:46:03 +10:00
psychedelicious
89de04775e
fix(ui): do not select already-selected entity
2024-08-23 19:46:03 +10:00
psychedelicious
b4c3c940b5
tidy(ui): naming things
2024-08-23 19:46:03 +10:00
psychedelicious
aee2aad959
tidy(ui): file organisation
2024-08-23 19:46:03 +10:00
psychedelicious
5ca48a8a5f
fix(ui): reset cursor pos when fitting document
2024-08-23 19:46:03 +10:00
psychedelicious
1806aa187b
feat(ui): staging area works more better
2024-08-23 19:46:03 +10:00
psychedelicious
7824cb7a1a
feat(ui): staging area barely works
2024-08-23 19:46:03 +10:00
psychedelicious
9807a896f4
feat(ui): consolidate konva API
2024-08-23 19:46:03 +10:00
psychedelicious
19866f057d
feat(ui): consolidate konva API
2024-08-23 19:46:03 +10:00
psychedelicious
ec4eae3c9c
feat(ui): staging area (rendering wip)
2024-08-23 19:46:03 +10:00
psychedelicious
bea0cba038
tidy(ui): type "Dimensions" -> "Size"
2024-08-23 19:46:03 +10:00
psychedelicious
48ee75af9c
feat(ui): add updateNode to Graph
2024-08-23 19:46:03 +10:00
psychedelicious
929c593d2f
feat(ui): sdxl graphs
2024-08-23 19:46:03 +10:00
psychedelicious
221f32eca7
feat(ui): sd1 outpaint graph
2024-08-23 19:46:03 +10:00
psychedelicious
c3acc15e8b
tests(ui): add missing tests for Graph class
2024-08-23 19:46:03 +10:00
psychedelicious
1b653278fc
feat(ui): add Graph.getid() util
2024-08-23 19:46:03 +10:00
psychedelicious
cc9062ee46
feat(ui): outpaint graph, organize builder a bit
2024-08-23 19:46:03 +10:00
psychedelicious
91c0feb0ad
feat(ui): inpaint sd1 graph
2024-08-23 19:46:03 +10:00
psychedelicious
ae60292ac8
feat(ui): temp disable image caching while testing
2024-08-23 19:46:03 +10:00
psychedelicious
a6ca17b19d
feat(ui): txt2img & img2img graphs
2024-08-23 19:46:03 +10:00
psychedelicious
6a4a5ece74
feat(ui): minor change to canvas bbox state type
2024-08-23 19:46:03 +10:00
psychedelicious
9b81860307
feat(ui): simplified konva node to blob/imagedata utils
2024-08-23 19:46:03 +10:00
psychedelicious
5f4a3928d2
feat(ui): node manager getter/setter
2024-08-23 19:46:03 +10:00
psychedelicious
b703884763
feat(ui): generation mode calculation, fudged graphs
2024-08-23 19:46:03 +10:00
psychedelicious
32da98ab8f
feat(ui): add utils for getting images from canvas
2024-08-23 19:46:03 +10:00
psychedelicious
bd5a85bf70
feat(ui): even more simplified API - lean on the konva node manager to abstract imperative state API & rendering
2024-08-23 19:46:03 +10:00
psychedelicious
d045f24014
feat(ui): revised docstrings for renderers & simplified api
2024-08-23 19:46:03 +10:00
psychedelicious
2aad3f89c3
feat(ui): inpaint mask UI components
2024-08-23 19:46:03 +10:00
psychedelicious
dd54d19f00
feat(ui): inpaint mask rendering (wip)
2024-08-23 19:46:03 +10:00
psychedelicious
0ed6591d8c
fix(ui): models loaded handler
2024-08-23 19:46:03 +10:00
psychedelicious
712e090134
feat(ui): internal state for inpaint mask
2024-08-23 19:46:03 +10:00
psychedelicious
8fc2a1d1cf
refactor(ui): divvy up canvas state a bit
2024-08-23 19:46:03 +10:00
psychedelicious
cc15c1593e
feat(ui): get region and base layer canvas to blob logic working
2024-08-23 19:46:03 +10:00
psychedelicious
9997d3abda
refactor(ui): node manager handles more tedious annoying stuff
2024-08-23 19:46:03 +10:00
psychedelicious
031471e785
feat(ui): use node manager for addRegions
2024-08-23 19:46:03 +10:00
psychedelicious
2e860c6791
feat(ui): persist bbox
2024-08-23 19:46:03 +10:00
psychedelicious
d071a9e17d
fix(ui): fix generation graphs
2024-08-23 19:46:03 +10:00
psychedelicious
ed53d33321
feat(ui): add toggle for clipToBbox
2024-08-23 19:46:03 +10:00
psychedelicious
382bc6d978
feat(ui): rename konva node manager
2024-08-23 19:46:03 +10:00
psychedelicious
dab42e258c
refactor(ui): create classes to abstract mgmt of konva nodes
2024-08-23 19:46:03 +10:00
psychedelicious
81556410bb
tidy(ui): organise renderers
2024-08-23 19:46:03 +10:00
psychedelicious
1f2dfd473c
refactor(ui): create entity to konva node map abstraction (wip)
...
Instead of chaining konva `find` and `findOne` methods, all konva nodes are added to a mapping object. Finding and manipulating them is much simpler.
Done for regions and layers, wip for control adapters.
2024-08-23 19:46:03 +10:00
psychedelicious
8f0f51be2c
perf(ui): fix lag w/ region rendering
...
Needed to memoize these selectors
2024-08-23 19:46:03 +10:00
psychedelicious
7179e250ed
feat(ui): move canvas fill color picker to right
2024-08-23 19:46:03 +10:00
psychedelicious
5bec091fd6
refactor(ui): remove unused ellipse & polygon objects
2024-08-23 19:46:03 +10:00
psychedelicious
2c5896cb0c
fix(ui): incorrect rect/brush/eraser positions
2024-08-23 19:46:03 +10:00
psychedelicious
93ff252dc0
refactor(ui): enable global debugging flag
2024-08-23 19:46:03 +10:00
psychedelicious
ac52224455
refactor(ui): disable the preview renderer for now
2024-08-23 19:46:03 +10:00
psychedelicious
4087cad23d
tweak(ui): canvas editor layout
2024-08-23 19:46:03 +10:00
psychedelicious
e936b1ff8f
perf(ui): memoize layeractionsmenu valid actions
2024-08-23 19:46:03 +10:00
psychedelicious
b7f9c5e221
refactor(ui): decouple konva renderer from react
...
Subscribe to redux store directly, skipping all the react overhead.
With react in dev mode, a typical frame while using the brush tool on almost-empty canvas is reduced from ~7.5ms to ~3.5ms. All things considered, this still feels slow, but it's a massive improvement.
2024-08-23 19:46:03 +10:00
psychedelicious
fc5467150e
feat(ui): clip lines to bbox
2024-08-23 19:46:03 +10:00
psychedelicious
4dcab357a0
fix(ui): document fit positioning
2024-08-23 19:46:03 +10:00