Commit Graph

228 Commits

Author SHA1 Message Date
Igor Zinken
f80e623348 Improved brushing performance on zoomed in documents 2021-01-18 18:08:04 +01:00
Igor Zinken
afe896b7f4 WebAssembly filter application is now configurable 2021-01-18 16:44:38 +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
11f07fdf52 Made curved pen drawing an option of the pen brush. Implemented initial nearest neighbour brush 2021-01-18 10:57:12 +01:00
Igor Zinken
3f98d548d1 When immediately undoing a freshly painted brush stroke, the last stroke is correctly removed 2021-01-18 09:19:30 +01:00
Igor Zinken
30705076f0 Defer saving of brush state until pointer is released 2021-01-18 09:02:56 +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
4017872468 Reduce initial bundle size by defer loading of render related content 2021-01-17 15:26:14 +01:00
Igor Zinken
09c305738d Options panel styling updates 2021-01-17 15:09:57 +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
1e5ce673d7 Added keyboard shortcut to open color picker 2021-01-16 20:46:52 +01:00
Igor Zinken
c55de06fea Implemented multiple brush types 2021-01-16 20:11:12 +01:00
Igor Zinken
b2d9078912 Inverted masking behaviour to be more logical 2021-01-16 17:27:02 +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
4b32f7a0da Fixed issue where brush would not have a size upon first selection 2021-01-15 19:24:58 +01:00
Igor Zinken
1a25b0b928 Fixed issue where clone stamp would always draw from the source coordinate on repeated stamps 2021-01-15 15:46:10 +01:00
Igor Zinken
a0a5cb465e Caught null pointer exception on outline rendering 2021-01-15 09:29:43 +01:00
Igor Zinken
7cc27c8803 Fixed issue where on touch screen selections would always draw a line to the top left corner 2021-01-15 09:15:39 +01:00
Igor Zinken
fbe2d995fb Implemented alternating colours for selection outlines 2021-01-14 21:05:33 +01:00
Igor Zinken
5acca694b1 Minor performance improvements and benchmark data 2021-01-14 19:21:17 +01:00
Igor Zinken
a84bbda21f Implemented removal of content under selection 2021-01-14 17:15:14 +01:00
Igor Zinken
822970d7c6 Implemented WebAssembly alternative for filters 2021-01-14 11:34:11 +01:00
Igor Zinken
897ed43cee Paint operations are now also stored into state history 2021-01-13 21:36:48 +01:00
Igor Zinken
b91af331ac Select all matches active layer outline 2021-01-13 21:06:47 +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
aecba6a411 Merge branch 'master' of https://github.com/igorski/bitmappery 2021-01-13 13:21:03 +01:00
Igor Zinken
442f0f5e27 Undo/redo icons added to toolbox 2021-01-13 11:35:55 +01:00
Igor Zinken
a7aa9236ab Draw selection outline for active layer 2021-01-13 11:25:31 +01:00
Igor Zinken
520efeffd2 Implemented specification of document size in multiple units 2021-01-12 21:43:02 +01:00
Igor Zinken
644eb25db6 Fixed issue where sprites disposed and recalled through change history would not restore their recorded position states 2021-01-12 17:32:36 +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
5f06e4355c Rotation is now also stored in state history. Improved instance undo response 2021-01-12 10:09:26 +01:00
Igor Zinken
bcdd47adfc Layer filter application is now stored in state history 2021-01-12 09:57:03 +01:00
Igor Zinken
b55896596c Moving of layers is now stored in state history 2021-01-12 09:16:45 +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
8ada610526 Images can now be pasted from clipboard or dropped into the application 2021-01-11 11:40:22 +01:00
Igor Zinken
71e0fd170d Separated file import from options panel, created landing page. Slight optimization to mobile view 2021-01-11 10:52:57 +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
9df39d1270 Implemented bucket fill and selection constrained draw modes 2021-01-10 21:57:09 +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
1980c992ef Further filter performance improvements by caching intermediate channel values 2021-01-10 17:44:23 +01:00
Igor Zinken
230598b8e6 Filter Worker performance optimization 2021-01-10 17:25:19 +01:00
Igor Zinken
9a46173590 Added fast rounding to text rendering coordinates 2021-01-10 15:39:40 +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
44b48c2e56 Added confirmation popup before window close 2021-01-09 14:20:40 +01:00
Igor Zinken
4d7d8964b6 Rendered text only occupies a Bitmap of the actual text size. Text rendering is also cached 2021-01-09 14:08:20 +01:00
Igor Zinken
1312f6601a Temporarily remove text rendering from bitmap cache 2021-01-09 12:31:28 +01:00
Igor Zinken
d325947ec7 Improved filter and effects rendering by introducing caches 2021-01-09 12:10:54 +01:00