This is the first full release of pan. I decided to skip 0.2.0 and instead go with a full 1.0 release, as the API isn't going to have any breaking changes in the future, and I'm pretty happy with how the command-line interface and new preview window have turned out.
- Completely new command line interface! Instead of dumping all the available information at you, pan's help is now split to the
pan
command, which shows information on using thepan
command itself, along with thepan r
command, which shows information on using the Lua API.- Additionally, functions and types can be searched for using
pan r <name>
.
- Additionally, functions and types can be searched for using
- Completely new preview user interface. This UI makes use of the current version of the rapid game engine (rapid 2020), whose code is much cleaner and more maintainable than the old version (rapid 2019).
- The timeline is now less rich and featureful than the one that was planned for 0.2.0: there is no scrolling and zooming functionality yet. I myself don't really work on very long animations for this to be a problem; if the preview window is maximized on a 1080p screen, the timeline is pretty long anyways.
- Keyboard navigation has been improved, see the
pan
help text for more info.
- New features in the API:
- Image support! It is now possible to load images from files, and also render to images (a'la framebuffers). Common image formats such as .png, .bmp, .jpg are supported - image loading uses stb_image, the full list is available in its header file. See
pan.image
. - Images can be rendered using pattern paints. See
pan.pattern
.- As a shortcut, images can be drawn straight to the current rendering destination using
pan.blit
.
- As a shortcut, images can be drawn straight to the current rendering destination using
- Images can be used as rendering destinations. See
pan.switch
. - Paints have gained settings for antialiasing and blend modes. See
Paint:antialiasing
andPaint:blendMode
. - Pattern paints have settings for extension modes, nearest/linear filtering, and cutout rectangles. See
Paint:extend
,Paint:filter
, andPaint:cutout
.
- Image support! It is now possible to load images from files, and also render to images (a'la framebuffers). Common image formats such as .png, .bmp, .jpg are supported - image loading uses stb_image, the full list is available in its header file. See
- API changes:
Color.r
,.g
,.b
, and.a
are now in the0..255
range instead of0.0..1.0
.
- Exporting to PNG is now multithreaded.
- It is now possible to immediately export an animation to a .gif, .webp, or .webm (VP9) file using the
-x
CLI parameter, using FFmpeg. - It is now possible to instruct pan to clean the output directory instead of just exiting, using the
-c
CLI parameter.
And probably some other changes that I missed.
Warning: Please note that pan fails to compile on more recent versions of Nim 1.4 (≥ 1.4.6), due to a compiler bug. I don't really have the time to track the bug down, but using an older version (≤ 1.4.4) or the devel branch doesn't have this problem. See #14.