DRAW v0.31.0
DRAW v0.31.0
LAYER GROUPS ! (and GROUPS in GROUPS in GROUPS in ... )
Released 2026-04-11
New Features
- Layer Groups — Full Photoshop-style layer grouping system (
Ctrl+Gnew group,Ctrl+Shift+Ggroup from selection,Ctrl+Shift+Uungroup). Groups support nesting, independent opacity and blend mode, Pass Through blend mode (children blend directly into canvas), drag-and-drop layers into groups, collapsible in the layer panel, merge group, select all in group, and selection from group. Context menu provides all group operations. Aseprite and PSD importers create nested group hierarchies automatically. - Color Bitmap Fonts (CBF) — DPaint-style
.bmpspritesheet fonts that preserve original pixel colors. 24 bundled CBF fonts in COLOR_BITMAP (mario3, dkc2, xenon2, bubsy, and more). Select from the font dropdown like any other font; size is fixed to native glyph height. - Smart Guides — Alignment guide lines appear when moving layers, snapping to canvas edges, centers, and neighboring layer edges. Toggle enable/snap via View menu or Edit Bar/Advanced Bar. Fully themeable guide colors and opacity.
- Advanced Bar refinements — Updated action items and removed Flip Canvas buttons from the advanced bar for cleaner layout.
Improvements
- Drawer Set (.dset) dirty tracking — Unsaved changes to drawer sets are now tracked with tooltip handling improvements and dset file management
- Fill Adjustment — Pattern support and rotation handling in the fill adjustment overlay
- Pixel Coach — Color-coded checkboxes and improved detection logic for pixel art analysis
- Image Adjustments on Layer Groups — Brightness/Contrast, Hue/Saturation, and other image adjustment dialogs now work on layer groups
- Message Box Icons — Added icon support and grid rendering configuration improvements
Bug Fixes
- Fix group parenting logic in
LAYERS_group_from_selectionfor cases with different parent groups - Fix group creation verification and initialize layer properties in history functions
- Fix group header handling in multi-select and commit active text editing in layer panel
- Clear restored history on file load to ensure clean undo state
Internal / Refactoring
- Layer deletion and movement functions now use local parameter copies for safety (BYVAL workaround for QB64's pass-by-reference semantics)
- Refactored MOVE tool to streamline transformation handling and prevent recursion
- Refactored Aseprite/PSD loaders for nested group handling with deferred group headers
- Cross-fire prevention for Ctrl+Shift key handlers in layer operations
- DRW file format bumped to v24 (layer group fields:
layerType,parentGroupIdx,collapsed,passThrough) - New history record kinds:
HISTORY_KIND_RASTERIZE(15),HISTORY_KIND_GROUP_REPARENT(16),HISTORY_KIND_MERGE_GROUP(17) - New action IDs 720–728 for layer group operations
- Added comprehensive QA test plans and results for layer groups and other features
What's Changed
- Implement drawer set dirty tracking, tooltip handling, and dset file … by @grymmjack in #57
- Color bitmap fonts by @grymmjack in #58
- Layer groups by @grymmjack in #59
Full Changelog: v0.30.0...v0.31.0