Skip to content

v0.3.6

Pre-release
Pre-release

Choose a tag to compare

@mkeeter mkeeter released this 25 Apr 12:39
· 154 commits to main since this release
5c7cd4a
  • Change Option<ThreadPool<'a>> to Option<&'a ThreadPool> throughout the codebase; moving the reference out of the ThreadPool eliminates the need for a separate rayon::ThreadPool object on the stack.
  • Significant rewrite of meshing! It now uses the same Option<&ThreadPool> type and is multithreaded using Rayon, meaning it can work in WebAssembly.
  • Changed 3D rendering and effects functions to use a new GeometryBuffer type, which combines depth and normal data into a single image.
  • Add fidget::gui module, which defines Canvas2 and Canvas3. The canvas types are stateful abstractions around a GUI canvas, with support for cursor interactions.
  • Change ImageSize::transform_point and VoxelSize::transform_point to take a point with i32 coordinates (instead of f32). This helps us distinguish between screen (pixel) and world (floating-point) coordinates at the type level.
  • Add Tree::remap_affine (and TreeOp::RemapAffine) to perform affine transformations on math expressions. These transformations are composable; two affine transforms will be combined into a single transform if stacked together.
  • Major updates to the Rhai standard library and default bindings:
    • Add vec2, vec3, vec4 types
    • Shapes are now constructed with object maps
    • Added documentation in fidget::rhai::docs module
  • Significant rewrite of meshing! It now uses the same Option<&ThreadPool> type and is multithreaded using Rayon, meaning it can work in WebAssembly.
  • Changed 3D rendering and effects functions to use a new GeometryBuffer type, which combines depth and normal data into a single image.
  • Add fidget::gui module, which defines Canvas2 and Canvas3. The canvas types are stateful abstractions around a GUI canvas, with support for cursor interactions.
  • Change ImageSize::transform_point and VoxelSize::transform_point to take a point with i32 coordinates (instead of f32). This helps us distinguish between screen (pixel) and world (floating-point) coordinates at the type level.
  • Add Tree::remap_affine (and TreeOp::RemapAffine) to perform affine transformations on math expressions. These transformations are composable; two affine transforms will be combined into a single transform if stacked together.
  • Major updates to the Rhai standard library and default bindings:
    • Add vec2, vec3, vec4 types
    • Shapes are now constructed with object maps
    • Added documentation in fidget::rhai::docs module