Quellcode durchsuchen

Add a roadmap to readme

Equbuxu vor 3 Jahren
Ursprung
Commit
e8a4a64ad4
1 geänderte Dateien mit 101 neuen und 0 gelöschten Zeilen
  1. 101 0
      src/README.md

+ 101 - 0
src/README.md

@@ -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