Skip to content

0.7.0

Compare
Choose a tag to compare
@Tyriar Tyriar released this 02 Jul 16:21
· 28 commits to master since this release

Features

Shape tool

A new shape tool has been added that currently supports drawing an ellipse and triangle.

  • This shape tool is modeled after the existing rectangle tool.
  • Smoothing/anti-aliasing is supported by default.
  • The shape outline show the exact outer edge of the shape to be rasterized.
  • Resizing the shape to flip the axes is supported.
  • Holding alt while drawing a shape will use the point not being dragged as the center point.
  • The shape can be moved with the arrow keys.

When using non-smooth and 1px outline size options the shape tool uses a special mode that draws pixel-perfect lines:

Line tool improvements

The line tool has received a lot of work this month:

  • Instead of rasterizing the pixels when drawn it now creates an interactive line object that can be manipulates just like the rectangle tool. This includes handles for both moving the points or resizing the width of the line.
  • The line now draws smooth/anti-aliased lines by default, this can be disabled using the smoothing option in the top bar.
  • Brush size is now supported.
  • A new guide is used for all lines except non-smooth 1px wide lines which shows where the smooth rectangle will be drawn.
  • Holding alt while drawing a line will use the point not being dragged as the center point instead of the other end of the line.
  • The line can be moved with the arrow keys.

There is also detailed information about the line available in the bottom bar:

Alt+drag support for the rectangle tool

Along with line and shape, the rectangle now also supports alt+drag to mirror resize changes on the other side.

Object handle and outline improvements

Outlines now show all the time while the object is active, not just when being moved or resized. They are also now more narrow and are colored dynamically based on the backing color.

Object handles also received a redesign, using the theme color + white instead of the black/white circle outlines.

Snap to pixel grid

The new luna.snapToPixelGrid can be disabled which allows drawing lines and shapes not locked to the pixel grid:

Entry in the welcome page New File... button (#81)

Luna Paint now supports the upcoming VS Code feature on the welcome page to allow create a new image or icon file from the welcome page:

Other enhancements

  • The rectangle tool now supports the replace blend mode.
  • Adopted status bar id/name to improve the description when right clicking on the status bar entry.
  • Tools are now separated by their category in the tools view.

Performance Improvements

Greatly improved load and save time

Thanks to a change in VS Code to improve the typed array extension host to/from webview transfer time landing in v1.57.0, Luna Paint's image load and save time has been greatly improved. The improvements get more impressive as the images get larger. The below numbers were taken using the average of 2 instances of each action.

Loading:

Image Size Before (ms) After (ms) Change
1000x1000 (28kb) 35.48 16.11 -55%
10000x10000 (18.3mb) 8074.27 679.34 -92%

Saving:

Image Size Before (ms) After (ms) Change
1000x1000 (28kb) 9.52 4.82 -49%
10000x10000 (18.3mb) 4585.34 348.46 -92%

Other improvements

  • Framerate should improve when the pixel line guide is displayed on a large monitor.

Documentation

  • New getting started pages
    • Shape tool
  • Updated getting started pages
    • Line tool

Bug Fixes

  • When actions cause errors like when cropping the image to its full dimensions, the editor's history will no longer be corrupted (#79).
  • Show an error in the canvas when the browser doesn't support SharedArrayBuffer, instead of breaking some functionality.
  • Fix the viewport breaking when alt+clicking an empty layer.
  • Don't hide tool option inputs when the window is narrow.
  • Flatten layers will no longer consider deleted layers.
  • Update tool cursor immediately after an undo or redo.
  • Updating tool options or the palette with the arrow keys no longer move active shapes.
  • Improve trackpad handling on non-macOS and mouse support on macOS (#75).
  • Hand tool
    • Holding space will no longer switch to the original tool and back to the hand when the pointer is released.
    • Ensure using space with the hand tool will not trigger actions in the original tool (#77, #78).
  • Move pixels tool
    • Flipping the selection will no longer incorrectly restore it back to the original when moving multiple times.
    • Fix an exception that could throw when undoing move pixel steps.
    • Restore correct smoothing quality on moved pixels after hot exit.
    • Fix redo history sometimes not applying the properly scaled image.
    • Fix axis flipping when dragging back and forth.
    • Correct cursor state when dragging immediately after flipping the selection.
  • Move selection tool
    • Fix an exception when redoing a history entry after deleting a selection outside the bounds of the canvas.
  • Line
    • Add accidental click protection.
    • Hide line angle info when the pointer is released.
  • Rectangle
    • Prevent rectangle from moving when changing outline size via up/down.
    • Prevent case where a finished rectangle could be edited after hot exit, corrupting history.
    • Restore in-progress rectangle handles after hot exit.
    • When drawing a rectangle, the cursor will now be updated when the pointer is released so it can be adjusted without moving the pointer again.
    • Add accidental click protection.
    • Fix display of handles when clicking after undo.
    • Restore display of handles after hot exit.
    • Update rectangle dimensions in status bar after undo/redo.
  • Zoom tool
    • Prevent zooming on a rectangle going beyond the maximum of 10000% (#76)).
  • Minimap
    • Fix deleted layers showing up in the minimap.
    • Fix transparent pixels rendered incorrectly on bottom layer