Commit Graph

587 Commits

Author SHA1 Message Date
Igor Zinken
5b2992b616 Initial implementation 2025-03-25 21:24:43 +01:00
Igor Zinken
d4dac30a6c Document resize can now be undone in state history. Document crop now cuts pixels of source content 2025-03-23 11:26:55 +01:00
Igor Zinken
2b7bcb924d Auto select dragged layer on drag end 2025-03-22 11:54:22 +01:00
Igor Zinken
b765404704 Update to clipping context while drawing 2025-03-16 12:17:59 +01:00
Igor Zinken
dbafae9984 Clip brush lines while drawing on an offset or transformed Layer 2025-03-16 12:14:31 +01:00
Igor Zinken
9182be6555 Move render operations to separate sub folders 2025-03-16 11:37:21 +01:00
Igor Zinken
630ba35b40 Restructure and rename actor/renderers (#57)
* Restructure and rename actor/renderers
* Rename cache flushing functions to reflect their scope
* Move canvas instance management to dedicated service
* Type resize-canvas-window Vue file
2025-03-16 11:32:42 +01:00
Igor Zinken
3aa929f704 Separate brush outline rendering routines into separate cursor rendering file 2025-03-16 07:47:24 +01:00
Igor Zinken
5b79291faf Moving some functions out of class instances to more logical utilities 2025-03-16 07:18:18 +01:00
Igor Zinken
cc2ace1719 Restructure test mocks 2025-03-15 22:09:07 +01:00
Igor Zinken
e39317e47a Fix issue where eyedropper tool would lose accuracy on HDPI screens 2025-03-15 22:04:27 +01:00
Igor Zinken
cfbfbfae1f Show result during direct-to-mask drawing operations 2025-03-15 21:31:24 +01:00
Igor Zinken
5f191cf9cc Fix issue where bounding box was not correct when selecting the outline of a vertically flipped Layer 2025-03-15 19:28:41 +01:00
Igor Zinken
8c99aa2e41 Life restriction that prevents drawing inside a selection on mirrored Layers 2025-03-15 19:20:03 +01:00
Igor Zinken
c8b8826216 Guides and selection lines now render at equal thickness across zoom levels 2025-03-15 11:49:56 +01:00
Igor Zinken
b9843c3b43 Fix bug where copying offset, cropped Layers would not correctly copy selection content 2025-03-15 11:37:16 +01:00
Igor Zinken
875edf0d10 Improved performance of selection copying 2025-03-15 11:31:17 +01:00
Igor Zinken
201ddbd9e5 Select all now selects full Document size more logically. Alt + clicking on a Layer selects the Layer outline, respecting transformations 2025-03-15 11:06:05 +01:00
Igor Zinken
83d8e7af4d Address issue where drawing operations on offset, cropped Layers would not use correct coordinate space 2025-03-15 10:19:27 +01:00
Igor Zinken
9ca9bbb732 Copying selection content onto new Layers reuses the original selections Layer type 2025-03-15 09:53:07 +01:00
Igor Zinken
1d37781855 Prevent drawing outside of the mask on non-graphic Layer types 2025-03-15 09:21:26 +01:00
Igor Zinken
12b51efffa Updates to layer and mask position management 2025-03-15 08:16:02 +01:00
Igor Zinken
535a192db3 Added more clear distinction between editing Layer source or Layer mask 2025-03-15 07:17:49 +01:00
Igor Zinken
a94f27153d Fix issue affecting snap & align of transformed Layers 2025-03-15 07:04:16 +01:00
Igor Zinken
c2c3389f84 More appropriate calculation for rendering blended layer bitmaps 2025-03-15 06:43:41 +01:00
Igor Zinken
9d2e89bde1 Create blended layer cache minimising rendering overhead on Documents with blended content (#55)
* Create cache for blended layers to speed up rendering on Documents with blended content
* Manage blend mode caching state through layer changes in Document canvas
* Comments updated
* Moving files around
* Omit invisible layers in snapshot rendering
* Add pausing to blend layer cache
* Cleanups and tests for LayerSprite
* Remove logs
* Use actual LayerSprite in test
* Simplify pending check
* Omit flush calls on (un)pausing of cache
* Extend tests for LayerSprite
* Update modifier key tooltip
* Create reusable function for invalidating blend cache
* Updated tests
* Allow partial cache flushes
* Ensure blended layer cache is flushed appropriately on undo
* Pause blend caching while rotating or scaling
* Fix for Safari rendering issues
2025-03-14 22:54:25 +01:00
Igor Zinken
85692f3896 Style updates: font size and backgrounds 2025-03-14 19:18:55 +01:00
Igor Zinken
bb64219006 Optimise clone source performance 2025-03-10 21:07:35 +01:00
Igor Zinken
6afd0e1f96 Fixed issue affecting magic wand tool on HDPI screens 2025-03-09 21:41:24 +01:00
Igor Zinken
20f438be84 Updated README 2025-03-09 17:57:26 +01:00
Igor Zinken
12a1a0710a Refactor clone brush routine (#54)
* Improve performance of clone brush while drawing
* Reuse same cached paint canvas mechanism as used by all other brushed-based drawing mechanisms
2025-03-09 17:36:36 +01:00
Igor Zinken
75ff95725e Declutter paint routines and fill mode bugs (#52)
* Simplify temporary canvas setup in layer-sprite's `paint()` routine
* Ensure fill, clear and stroke operations work the same like brushed painting by using a temporary canvas and apply transformations at the end
2025-03-09 11:28:23 +01:00
dependabot[bot]
750fba382c Bump vue-i18n from 11.1.0 to 11.1.2 (#51)
Bumps [vue-i18n](https://github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n) from 11.1.0 to 11.1.2.
- [Release notes](https://github.com/intlify/vue-i18n/releases)
- [Changelog](https://github.com/intlify/vue-i18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/intlify/vue-i18n/commits/v11.1.2/packages/vue-i18n)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-08 08:55:20 +01:00
Igor Zinken
a39f7d41a4 Only show page unload warning when there is an opened document 2025-03-05 21:16:00 +01:00
Igor Zinken
cba9ba1f52 Restore active tool when unsetting interaction pane mode using keyboard shortcuts 2025-03-05 21:08:41 +01:00
Igor Zinken
b2cdc3ad22 Update ContactJS dependency version. Migrate untyped decorators to TypeScript 2025-03-05 14:22:07 +01:00
Igor Zinken
822c6b5cd1 Use crosshair icon while drawing selection 2025-03-05 13:15:25 +01:00
Igor Zinken
d856b5b6bf Align title in dimensions formatter 2025-03-04 13:49:16 +01:00
Igor Zinken
71ed911b08 Layer filters should be scrollable on small screens 2025-03-04 13:44:50 +01:00
Igor Zinken
a8f965e363 Simplify drawing preparation code 2025-03-04 12:26:06 +01:00
Igor Zinken
d79974c75f Delete rudimentary service worker setup file 2025-03-04 10:58:59 +01:00
Igor Zinken
398b8d806e Show close notification warning in production build 2025-03-04 10:58:17 +01:00
Igor Zinken
2c4e1759d4 Address issue where stepping through state history for mask drawing is not restoring state correctly 2025-03-04 10:27:29 +01:00
Igor Zinken
f63619ddd8 Change modifier key for layer selection from ctrl to alt 2025-03-03 18:24:17 +01:00
Igor Zinken
ea59169646 Use native modifiers when supported with fallback to alt modifier for non-conflicting keyboard shortcuts 2025-03-03 18:16:16 +01:00
Igor Zinken
fd4158c7a9 Restructure shortcuts to handle conflicts in Windows environments 2025-03-03 17:47:30 +01:00
Igor Zinken
bbcacad883 Address cropping issue when drawing on a wide screen ratio 2025-03-03 17:42:52 +01:00
Igor Zinken
d08fa7c685 Improve performance of brushed draw operations (#50)
* Make drawing instantaneous by drawing directly onto destination layer
* Draw onto temporary, untranslated full size Canvas omitting the need to translate while drawing until drawing completes
* Improve math operations
2025-03-03 17:05:37 +01:00
Igor Zinken
aad2edf5c5 Add center and reset buttons to drag panel 2025-03-03 17:02:42 +01:00
Igor Zinken
7ca13ce0e4 Animate selection outlines 2025-03-03 16:44:48 +01:00