Table of Contents

Namespace WitShells.CanvasDrawTool

Namespaces

WitShells.CanvasDrawTool.Editor

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.

DrawToolSettings.BrushPreset
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).

Enums

Brush.BrushType
DrawToolSettings.DrawingTool
DrawingEngine.DrawTool
LayerObject.BlendMode
PenInput.BarrelButtonAction