v0.11.0
ExoJS v0.11.0
Release Date: 2026-06-04
Changelog
Added
-
WebGPU geometry stencil completion. WebGPU now supports geometric stencil
clipping across custom-material pipelines (Sprite, Mesh, Graphics), reaching
pixel parity with WebGL2 for all default and custom material paths. (#41, #43) -
Graphics gradient fills.
Graphicsprimitives now acceptLinearGradient
andRadialGradientfills viafillGradientandstrokeGradientstyle
properties.Gradientwas promoted to aColor-like value object with
lerp()andtoArray()methods. Agraphics-gradientexample demonstrates
cross-backend gradient rendering with pixel-validated test coverage.
(#52, #53, #55, #56, #57) -
BitmapTextdiagnostics and demo. AddedBitmapTextrendering with BMFont
diagnostics utilities and abitmap-text-basicexample demonstrating bitmap
font rendering, character set inspection, and layout options. (#66) -
assert()dev diagnostics. Added a lightweight assertion utility
(assert(condition, message)) for development-time invariant checking.
Assertions are stripped in production builds. (#67) -
TypeScript-first examples migration. All 117 example files converted from
JavaScript to TypeScript across the full examples tree: application-scenes,
sprites-textures, input, text-fonts, scene-graph, tweens-animation, filters,
debug-layer, audio-basics, audio-fx, beat-detection, particles, performance,
geometry-graphics, render-targets, custom-renderers, and showcase. The
playground example pilot added type-safe example loading.
(#68, #69, #70, #71, #72, #73, #74, #75, #76, #77, #78, #79) -
@assetsimport-map module. Examples can now reference bundled assets via
@assets/...import paths, with theLoadersupporting absolute-path
resolution for this scheme. (#65) -
Multi-browser + dark-mode smoke support. The example smoke test runner now
supports dark color-scheme canvases and resolves a WebGPU feature-flag conflict
during multi-browser runs.
Performance
-
Render pipeline hot-path profiling. Instrumented the render-plan path to
identify and eliminate bottlenecks in render command processing and group
compaction. (#80) -
Batched transform storage writes.
TransformBufferuploads are now batched
by render group, reducing per-nodedevice.writeBuffercalls and improving
render-plan playback throughput. WebGPU transform storage is pre-reserved
before playback to eliminate mid-frame reallocation. (#44, #45, #46, #48, #50)
Fixed
-
GLSL reserved word. Fixed a WebGL2 text shader that used
textas a
variable name (a reserved word in GLSL ES 3.00), resolving compilation failures
on strict drivers. (#60) -
SDF text baseline alignment. Corrected SDF tile height computation to use
font-level metrics, fixing vertical misalignment in multi-font and mixed-size
text layouts. (#62, #63) -
WebGPU mesh tint normalisation. Mesh tint values on the WebGPU path are now
normalised to the 0-1 range before upload, matching WebGL2 behaviour. (#54) -
WebGPU Uint16 index-buffer alignment.
Uint16index-buffer writes are now
aligned to 4-byte boundaries on WebGPU, preventing alignment violations on
hardware that enforcesCOPY_DSTbuffer offset restrictions. -
Loader
@assets/absolute-path resolution. TheLoadernow correctly
resolves absolute paths when using the@assets/import-map scheme, fixing
failed asset loads in playground and bundled example deployments. (#65) -
Example runtime health. Repaired broken examples across the catalog
including text layout rendering, playground navigation stability, style option
migration, and smoke test failures. (#58, #59, #61, #64)
Install: npm install @codexo/exojs@0.11.0
Full Changelog: View Changes | All Releases