177 Commits

Author SHA1 Message Date
Igor Zinken
3997faf9bc Layer order swap is now also stored in state history 2021-01-19 11:57:00 +01:00
Igor Zinken
1af4e4e8b7 Implemented Layer sorting 2021-01-19 09:59:08 +01:00
Igor Zinken
f80e623348 Improved brushing performance on zoomed in documents 2021-01-18 18:08:04 +01:00
Igor Zinken
b7720db1c3 Implemented preferences panel and low memory mode to reduce memory allocated by paint history 2021-01-18 13:28:19 +01:00
Igor Zinken
cc10c2dcaa Implement action queue for deferred paint rendering, use low resolution paint preview during paint 2021-01-17 23:35:14 +01:00
Igor Zinken
028c8c8093 Made brush undo states Blob based to overcome Safari Canvas allocation limit, added Vuex module based memory management for these state resources 2021-01-17 14:47:16 +01:00
Igor Zinken
c55de06fea Implemented multiple brush types 2021-01-16 20:11:12 +01:00
Igor Zinken
2f9013155f Implement continuous brushing (#6)
Implementation of continuous brushing added
2021-01-16 17:21:44 +01:00
Igor Zinken
a07e4e7c46 Implemented layer scaling 2021-01-16 12:21:45 +01:00
Igor Zinken
1b44ac9cf0 Selections are now handled by the interaction pane to be visible on top of all layers and work across layers 2021-01-13 21:00:09 +01:00
Igor Zinken
3d343c63f4 Added layer interaction to state history 2021-01-12 17:15:24 +01:00
Igor Zinken
060e3abea0 Selections are now also stored in state history 2021-01-12 11:28:22 +01:00
Igor Zinken
85b70c12f9 Implemented state history mechanism (still hidden from UI as features need to be hooked up) 2021-01-11 21:45:59 +01:00
Igor Zinken
60b87f6626 Separated math utility into area specific functions. Decluttered LayerSprite selection logic 2021-01-10 22:16:45 +01:00
Igor Zinken
a92c387ac3 Upon opening a new Document, there is always a valid tool selected 2021-01-10 20:12:12 +01:00
Igor Zinken
e307f6374b Fixed issue where rotated content on Safari would sometimes not render 2021-01-10 15:15:11 +01:00
Igor Zinken
d325947ec7 Improved filter and effects rendering by introducing caches 2021-01-09 12:10:54 +01:00
Igor Zinken
d8382e043a Improved performance of filter application by omitting idle effects, implemented brightness and vibrance filters 2021-01-08 20:15:38 +01:00
Igor Zinken
f06c4a0402 Implented Document cropping 2021-01-08 18:56:25 +01:00
Igor Zinken
6ed9616107 Improved filter performance by processing ImageData inside a parrallelizable Worker 2021-01-08 16:40:14 +01:00
Igor Zinken
c78106b35e Implemented desaturate filters 2021-01-08 09:30:06 +01:00
Igor Zinken
213b3e509c Implemented initial layer filters 2021-01-07 21:47:25 +01:00
Igor Zinken
f4f2f6abee Fixed issues with Document content rescaling 2021-01-06 22:31:12 +01:00
Igor Zinken
86bb61569f Added automatic layer selection on ctrl + click of Document, taking transparency into account 2021-01-05 22:50:50 +01:00
Igor Zinken
693ad055e7 Implement a little more robust Google Font preloading 2021-01-05 08:53:08 +01:00
Igor Zinken
05872365b2 Added opacity to clone stamp 2021-01-04 21:38:23 +01:00
Igor Zinken
e6502ef506 Implemented clone stamp tool 2021-01-04 21:29:15 +01:00
Igor Zinken
921e3c0133 Implemented loading state for potentially long running operations 2021-01-03 19:54:53 +01:00
Igor Zinken
ca74ac9c5e Fixed issue where pan mode would not be active over entire canvas surface 2021-01-03 15:13:47 +01:00
Igor Zinken
e820fd345d Paste image selection now appear in the center instead of top left of the Document 2021-01-03 12:58:13 +01:00
Igor Zinken
6363a6b753 Selections can now be moved using keyboard arrows 2021-01-03 11:21:48 +01:00
Igor Zinken
0ba55d1ccf Documents can now be saved and loaded from Dropbox directly 2020-12-31 18:20:13 +01:00
Igor Zinken
eb0e024f6d Transparent layers are now also stored with transparency 2020-12-31 11:05:37 +01:00
Igor Zinken
51e28701fb Implemented text line height adjustment 2020-12-30 13:25:32 +01:00
Igor Zinken
72872fa8dc Implemented Google Fonts 2020-12-30 11:24:11 +01:00
Igor Zinken
92ac2ead05 Added initial text implementation 2020-12-29 22:12:13 +01:00
Igor Zinken
6f825e3ed7 Selections can now be stored and reloaded at Document level 2020-12-29 14:19:11 +01:00
Igor Zinken
ba5cf0e3b7 Implemented layer mirroring effect 2020-12-29 12:46:50 +01:00
Igor Zinken
b9851c4756 Resolved issue with dragging of rotated layer content 2020-12-27 13:12:18 +01:00
Igor Zinken
e1a782ac72 Layer effects are now delegated to an asynchronous render service 2020-12-27 10:42:22 +01:00
Igor Zinken
a7daecf4cc Refactored layer-sprite and layers so layer-sprite have the responsibility of storing the temporary effected bitmap 2020-12-26 20:55:05 +01:00
Igor Zinken
1fe38cd3c0 Implement eraser tool 2020-12-24 10:33:33 +01:00
Igor Zinken
31593b9d27 Added initial layer rotation 2020-12-23 20:40:41 +01:00
Igor Zinken
b8f25cefa8 Implemented eyedropper tool 2020-12-23 19:51:35 +01:00
Igor Zinken
bc99668897 Document resize now takes layers with sizes different to the document into account 2020-12-23 15:29:58 +01:00
Igor Zinken
34945ce027 Renamed application 2020-12-23 14:42:59 +01:00
Igor Zinken
f78ac52655 Added free-form selections 2020-12-23 12:58:05 +01:00
Igor Zinken
c8189b9b2e Fixed issue with document resizing, sprite functions can now be run for specific documents, added unit tets for sprite factory 2020-12-22 12:13:18 +01:00
Igor Zinken
98603d6c20 Remove rudimentary tests 2020-12-22 11:07:07 +01:00
Igor Zinken
3aab2938a9 Masks are now movable. Exported image is now hi-res 2020-12-21 21:00:08 +01:00