Skip to content

DRAW v0.31.0

Choose a tag to compare

@github-actions github-actions released this 11 Apr 23:52
· 184 commits to main since this release

DRAW v0.31.0

LAYER GROUPS ! (and GROUPS in GROUPS in GROUPS in ... )

GUI

Released 2026-04-11

New Features

  • Layer Groups — Full Photoshop-style layer grouping system (Ctrl+G new group, Ctrl+Shift+G group from selection, Ctrl+Shift+U ungroup). 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 .bmp spritesheet 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_selection for 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

Full Changelog: v0.30.0...v0.31.0