Skip to content

v0.3.5

Pre-release
Pre-release

Choose a tag to compare

@mkeeter mkeeter released this 06 Mar 21:15
· 185 commits to main since this release
5474b31
  • Added #[derive(Serialize, Deserialize)] to View2 and View3
  • Make TranslateHandle take a const N: usize parameter
  • Use TranslateHandle in View2 (previously, it was only used in View3)
  • Make translate and rotate functions borrow their respective handle, instead of taking it by value.
  • Fix docstring for AndRegImm, AndRegReg, OrRegImm, and OrRegReg
  • Add cancel: CancelToken to 2D and 3D rendering configuration objects; this is a shared Arc<AtomicBool> which can be used to stop rendering. The returned type is now an Option<...>, where None indicates that rendering was cancelled.
  • Fix inconsistency between JIT and VM evaluator when performing interval evaluation of not([NAN, NAN]).
  • Propagate NAN values through and and or operations on intervals.
  • Add a new Image<P> generic image type (wrapping a Vec<P>, width, and height).
    • Define DepthImage, NormalImage, and ColorImage specializations
    • Use these types in 2D and 3D rendering
  • Remove Grad::to_rgb in favor of handling it at the image level
  • Add fidget::render::effects module for post-processing rendered images:
    • Combining depth and normal images into a shaded image
    • Denoising normals to fix back-facing samples
    • Computing and applying screen-space ambient occlusion
  • Optimize implementation of interval modulo for cases where the right-hand argument is a positive constant value (which is the most common when using it for domain repetition)
  • Update many dependencies to their latest versions

⚠️ Due to getrandom#504, crates which use Fidget as a library and compile to WebAssembly must select a getrandom backend.

This can be done either on the command line (RUSTFLAGS='--cfg getrandom_backend="wasm_js"') or in a .cargo/config.toml configuration file (e.g. this file in Fidget itself).