|
@@ -2,6 +2,107 @@
|
|
|
|
|
|
Decouples the state of a document from the UI.
|
|
|
|
|
|
+## Roadmap
|
|
|
+
|
|
|
+- ChunkyImage
|
|
|
+ - [x] Basic commited and preview chunk support
|
|
|
+ - [x] Affected chunk infrastructure
|
|
|
+ - [x] Size constraining
|
|
|
+ - [x] Cloning
|
|
|
+ - [ ] Periodic cleaning of empty chunks
|
|
|
+ - [ ] ChunkPool multithreading support
|
|
|
+ - [x] Dispose that returns borrowed chunks
|
|
|
+ - [ ] Finalizers that return borrowed chunks
|
|
|
+ - [ ] GetLatestChunk resolution parameter
|
|
|
+ - [ ] Support for chunks of different sizes?
|
|
|
+ - [ ] Disposable ChunkView class?
|
|
|
+ - [x] CommitedChunkStorage (used to store chunks for undo)
|
|
|
+ - [ ] Write chunks to the hard drive?
|
|
|
+ - [ ] Linear color space for blending
|
|
|
+ - [ ] Tests for everything related to the operation queueing
|
|
|
+ - Operations
|
|
|
+ - [ ] Support for paints with different blending (replace vs. overlay)
|
|
|
+ - [ ] Image (basic done, needs rotation, scale, skew, perspective, etc.)
|
|
|
+ - [ ] Rectangle (basic done, needs rotation support)
|
|
|
+ - [ ] Ellipse
|
|
|
+ - [ ] Line
|
|
|
+ - [ ] Fill
|
|
|
+ - [ ] Draw pixels
|
|
|
+ - [ ] Translate everything
|
|
|
+ - [x] Clear operation
|
|
|
+ - [x] Resize canvas operation
|
|
|
+ - [ ] Resize image operation?
|
|
|
+ - [x] Raster clip operation
|
|
|
+ - Filters
|
|
|
+ - [ ] Hue/Saturation/Value
|
|
|
+ - [ ] Brightness/Contrast
|
|
|
+ - [ ] Curves
|
|
|
+ - [ ] Gradient mapping
|
|
|
+- ChangeableDocument/Renderer
|
|
|
+ - [x] Basic Action->Change->ChangeInfo pipeline
|
|
|
+ - Undo handling
|
|
|
+ - [x] UpdateableChange class for changes requiring preview
|
|
|
+ - [ ] Handling for changes that don't change anything
|
|
|
+ - [x] Dispose changes
|
|
|
+ - [ ] Dispose the entire document
|
|
|
+ - [x] Basic undo stack infrastructure
|
|
|
+ - [ ] Ignored changes (changes that don't get recorded in undo)
|
|
|
+ - [ ] Manually ignore specific changes
|
|
|
+ - [ ] Manual squashing
|
|
|
+ - [ ] Auto-squashing
|
|
|
+ - [ ] Limit undo stack size (discard old changes)
|
|
|
+ - [x] Basic Collect Actions -> Apply actions -> Render changes pipeline
|
|
|
+ - Rendering
|
|
|
+ - [x] Basic layer stack rendering
|
|
|
+ - [x] Opacity/Visibility support
|
|
|
+ - [x] Recursive rendering of folders
|
|
|
+ - [ ] Blending modes support
|
|
|
+ - [ ] Clip to layer below support
|
|
|
+ - [ ] Layer mask support
|
|
|
+ - [ ] Low-res rendering
|
|
|
+ - [ ] Don't render chunks outside viewport
|
|
|
+ - [ ] Vector layers (primarily reference layer) rendering
|
|
|
+ - [ ] Support for rendering a subset of the structure (for merging selected layers, referring to selected layer, etc.)
|
|
|
+ - [ ] Caching for folders
|
|
|
+ - [ ] Caching for everything below current layer
|
|
|
+ - [ ] Caching for sequences of layers with a normal blending mode
|
|
|
+ - Rendering images for changes (tools requiring final image, merge layers, etc.)
|
|
|
+ - [ ] Action packeting with a pre-rendering step for each packet
|
|
|
+ - or
|
|
|
+ - [ ] StructureRenderer as a part of Document
|
|
|
+ - [ ] Rendering of layer previews
|
|
|
+ - [ ] Rendering of canvas previews
|
|
|
+ - [ ] Rendering of the navigator image
|
|
|
+ - Changes
|
|
|
+ - [x] Layer structure changes
|
|
|
+ - [ ] Merge layers
|
|
|
+ - [ ] Vector layers manipulation (or at least reference layer)
|
|
|
+ - [ ] Resize canvas (basic done, anchors left)
|
|
|
+ - [ ] Resize image
|
|
|
+ - [ ] Rectangle (basic done, rotation left)
|
|
|
+ - [ ] Ellipse
|
|
|
+ - [ ] Line
|
|
|
+ - [ ] Pen
|
|
|
+ - [ ] Pixel-perfect pen
|
|
|
+ - [ ] Eraser (same as pen?)
|
|
|
+ - [ ] Fill
|
|
|
+ - [ ] Brightness
|
|
|
+ - [x] Basic selection changes
|
|
|
+ - [ ] Selection modes
|
|
|
+ - [ ] Circular selection
|
|
|
+ - [ ] Magic wand
|
|
|
+ - [ ] Lasso
|
|
|
+ - [ ] Move/Rotate selection
|
|
|
+ - [ ] Transform selection
|
|
|
+ - [x] Clip to selection
|
|
|
+ - [ ] Clip to itself (preserve transparency)
|
|
|
+ - [ ] Layer mask manipulation
|
|
|
+- ViewModel
|
|
|
+ - [ ] Action filtering
|
|
|
+ - [ ] Viewport movement as an action
|
|
|
+- Not sure
|
|
|
+ - [ ] Pipette tool
|
|
|
+
|
|
|
## Included cs projects (all wip, most features not implemented yet):
|
|
|
|
|
|
- ### ChunkyImageLib
|