v0.12.6: Binding and renderer fixes
A patch release that fixes crashes, memory leaks, and wrong output, and closes parity gaps between the Rust, JavaScript, Python, Swift, and Kotlin bindings.
A patch release that fixes crashes, memory leaks, and wrong output, and closes parity gaps between the Rust, JavaScript, Python, Swift, and Kotlin bindings.
The WebGL2 fallback works: uniforms get the padding the backend needs, readback stops hanging, and GPU validation errors reach the browser console.
Resizing an offscreen TextureTarget keeps every pass and binding on the new texture, and the film grain catalog function renders per-pixel grain from normalized coordinates.
A maintenance release that moves the graphics stack to wgpu 30 and naga 30, a drop-in upgrade on every binding.
A scene owns one ordered list of render passes that you can read, append, remove, reorder, and replace, on every binding.
This patch gets v0.12.0 onto crates.io and fixes a lockfile mismatch and a timing race in the release pipeline.
The largest release so far adds a Scene graph, a glTF model loader, and physically based (PBR) materials.
Native builds embed the shader library. Network fetches move behind a Cargo feature, which unblocks the Linux PyPI wheels.
Swift and Kotlin via uniffi complete the planned set of languages. The release also unifies the texture API, adds shader composition + KTX2 loading, fixes a class of correctness bugs, and upgrades to wgpu 29.
Writing pixel data directly into textures, zero-copy HTML video textures on the web, and updated Python integration with RenderCanvas 2.0.
Stability improvements for long-running browser sessions where the WebAssembly memory may detach during the session.
Public types now carry stable string brands so identity checks survive Terser and similar bundler passes.
Per-frame uniform updates from worker threads now run lock-free. Error variants get explicit shapes. The website ships a live shader gallery.
Textures, meshes, multi-pass, MSAA, and a build that fails locally if any binding is missing a method.
JavaScript support on npm, a lazily loaded renderer with a simpler API, and updated wgpu and dependencies.
FragmentColor now installs from PyPI on Windows, Linux, and macOS in a single command, with a fully automated wheel pipeline behind it.
The PyPI package imports correctly, the Pass and Frame objects get fixes, and the public API gains its missing methods.
The crate moves to the Rust 2024 edition, with small documentation fixes.
A first Python implementation of FragmentColor, published to PyPI.
A simpler internal shader representation, pooled uniform buffers, runtime errors in place of panics, and a render call that takes a renderable and a target.
The v0.10.0 release introduces the Shader-centered design, completes the rename from PLRender, and sets the shape of the API for what comes next.