Skip to content

Releases: abhishekmishra/picoturtle

v0.1.0-alpha.2

26 Nov 05:14
Compare
Choose a tag to compare
v0.1.0-alpha.2 Pre-release
Pre-release
  • Third alpha release of PicoTurtle with several features and bug fixes.
  • Box and BoxTurtle lua modules now implement padding, margin, and border - and allow the turtle to draw in the inner box. BoxTurtle can also draw a border.
  • Added Vec4 to support specifying padding, margin and border values.
  • Included c-color-names in picoturtle-lib so that the pencolor method can support specifying color as a string name. Old way of specifying rgb values is also supported.
  • All pencolour methods are renamed pencolor to follow american spelling which is standard in the programming world.
  • Since a lot of the turtle code was based on an older C# version of the code - it was in sentence case. These methods have all been changed to lowercase with underscore to separate words.
  • The public turtle lua api now supports state(), save(), and restore() - to get the turtle state, save the current state, and restore the saved state. This allows to temporarily switch turtle properties, do some action and resume from where the state was saved.
  • Fixed the color type and alpha type extraction from SkImage generated by the SkCanvas snapshot - when drawing on the GL Widget. Earlier the color detection was based on Skia preprocessor macros which gave incorrect results on macros. Now the color type is detected on the first turtle run and reused for later calls.
  • Antialiasing is set on skia and on the gl widget painter to enable much better and smoother image output.
  • Min width of the turtle canvas is set, and the canvas widget is now in a dock tabbed along with the turtle docs widget.
  • The turtle canvas dock is raised on a turtle run and the docs dock is raised when opening docs.
  • Text rotation is fixed in SkiaCanvas class to rotate around the pivot of the current turtle position.
  • The text demo in samples is also appropriately fixed.
  • The maze generation sample is fixed to work with the current api.

v0.1.0-alpha.1

19 Nov 14:09
Compare
Choose a tag to compare
v0.1.0-alpha.1 Pre-release
Pre-release
  • Second early alpha release of the new PicoTurtle, many minor and major features added
  • A sample turtle lua program is opened in a new editor when the program starts
  • The colours of the console and editor are based on Turbo Pascal IDE colours.
  • The turtle documentation is copied over from previous PicoTurtle and shown in a new dock - for starters.
  • Using the system fixed font (discovered via Qt apis) for the editor and console.
  • Added icons for both dark and light version. Using helper function to detect dark system them and switch icons to white.
  • Save button is enabled/disabled based on whether the editor is dirty.
  • Editor tab width is set to 4 spaces.
  • Editor now has syntax highlighting according to lua syntax.
  • Program has icon (copied from previous PicoTurtle) for windows and macos versions.
  • The picoturtle library now has separation of concerns between turtle and canvas - which now have separate class heirarchies of interface and implementation.
  • The picoturtle canvas object is now a static instance and shared among multiple instantiated turtle objects
  • A set of lua modules providing a BoxTurtle (which restricts a turtle instance to drawing in a box) are added.
  • The BoxTurtle and picoturtle lib changes enable drawing multiple turtle experiments on the same canvas.
  • The print function embedded into lua runtime now uses luaL_tolstring so that proper string conversion of non-primitive types is done for printing.
  • The gl canvas for drawing the turtle canvas now resizes, alongwith the window and stays squared and centered.
  • Provision for loading a lua config file from standard platform config location is added, but not used in this release.

v0.1.0-alpha.0

12 Nov 05:31
Compare
Choose a tag to compare
v0.1.0-alpha.0 Pre-release
Pre-release
  • This is the first early alpha release of the full rewrite of PicoTurtle in C/C++/Lua.
  • Note that there was an earlier prototype version of PicoTurtle in NodeJS and electron. It supported multiple programming languages. However both performance and ease of development was not satisfactory.
  • This project is developed using C++ mostly (with some parts interacting with Lua written in C). The turtle is currently drawn on a Skia canvas.
  • Turtle programs can be written in Lua.
  • It's also theoretically possible to use the turtle library and write the turtle programs in C++.
  • The GUI is developed using Qt6 - and has a basic editor and canvas to play around with a turtle.
  • The current release is under GPLv3. At a later date the library component may be released under LGPLv3.