Namespace WitShells.CanvasDrawTool
Namespaces
Classes
- Brush
Defines brush settings and properties for drawing.
- BrushSettingsUI
Brush settings UI panel that reads/writes to DrawToolSettings.
- ColorPickerUI
Color picker UI with hue bar, saturation/value square, and alpha slider. Supports color history and direct input.
- DrawCanvasUI
Main drawing canvas UI component. Manages the layer container and provides zoom/pan functionality. Each layer is now a separate RawImage GameObject for mobile performance.
- DrawToolController
Main controller that wires all drawing tool components together. This is the primary entry point for the drawing tool. Uses DrawToolSettings ScriptableObject as single source of truth for all settings.
- DrawToolSettings
ScriptableObject that holds all drawing tool settings. This is the single source of truth for brush, color, and canvas settings.
- DrawingEngine
Handles drawing operations on LayerObject. Uses DrawToolSettings ScriptableObject as single source of truth for brush settings. OPTIMIZED: Uses FastTextureBuffer for high-performance Android drawing.
- DrawingInput
Handles all input for the drawing tool using New Input System. Supports mouse, touch, and provides base for pen input.
- FastTextureBuffer
High-performance texture buffer using byte array for Android optimization. Based on DirectTextureDrawing approach for maximum performance. Uses direct byte manipulation instead of Color struct for speed. (Android optimized)
- ImageSelectionManager
Manages selection of imported images and their transform handlers. Handles click-to-select, deselection, and transform mode toggling.
- ImageTransformHandler
Handles transform operations (move, scale, rotate) for imported images. Maintains aspect ratio during scaling. Provides visual handles at corners and edges.
- LayerItemUI
Individual layer item UI component. Updated for LayerObject-based system.
- LayerManager
Manages all layers as separate RawImage GameObjects for high performance on mobile. Each layer is a LayerObject with its own texture and transform capabilities.
- LayerObject
Represents a single layer as a RawImage GameObject for high performance on mobile. Uses FastTextureBuffer for optimized pixel operations. Each layer can be independently positioned, scaled, rotated and cropped.
- LayerPanelUI
Layer panel UI for managing layers. Displays layer list with visibility, lock, and selection controls. Updated for LayerObject-based system.
- PenInput
Specialized input handler for pen/stylus tablets. Supports pressure sensitivity, tilt, and pen-specific features. Works with Wacom, Surface Pen, Apple Pencil (via Unity's Pen device).