Releases: M-CreativeLab/jsar-runtime
Releases · M-CreativeLab/jsar-runtime
v0.10.0
New Features & Improvements
DOM & Web APIs
- Custom Fonts Support: Added support for custom fonts directory via
JSAR_SYSTEM_FONTS_DIR
environment variable (#255) - DocumentFragment API: Complete implementation with ParentNode interface support including
cloneNode()
and proper insert logic (#245, #249, #247) - Document API Extensions: Added support for
createDocumentFragment()
andcreateComment()
methods (#235, #233) - Script Execution: Implemented proper blocking script execution order for HTMLScriptElement (#251)
- Viewport Meta: Added viewport meta parsing and configuring window width & height (#237)
WebGL Enhancements
- Buffer Operations: Implemented
bufferData(target, size, usage)
support in WebGL bindings (#248) - Vertex Operations: Added WebGL
vertexAttrib
andclearBuffer
methods (#205)
CSS & Styling
- CSS Selectors: Exposed selectors text at style rule level (#239)
- CSS Filters: Implemented parsing for CSS
filter
andbackdrop-filter
properties with parameter support (#238) - Overflow Handling: Added support for nested CSS overflow scroll behavior (#229)
3D Graphics & Rendering
- 3D Gaussian Splatting: Implemented PLY loader for 3D Gaussian Splatting models in
<model>
tag (#223) - Layered Rendering: Added overflow-based and layer-based rendering for web content instances (#225, #220)
- SDF Text Rendering: Implemented Signed Distance Field text rendering for improved text anti-aliasing (#198)
Developer Tools & Debugging
- Inspector Integration: Added content CDP (Chrome DevTools Protocol) proxy and implemented Log domain (#214)
- Network Monitoring: Added network service to listen for network state changes (#164)
Bug Fixes & Performance
Graphics & Rendering
- Shader Performance: Cached shader's
COMPILE_STATUS
to avoid blocking calls (#254) - Buffer Management: Fixed
dataSize
handling inBufferDataCommandBufferRequest
- Framebuffer Status: Added proper response handling for
CheckFramebufferStatus()
- Texture Bindings: Fixed multiple texture bindings per target for rendering units (#215)
- 3D Gaussian Splatting: Optimized GPU performance and compression format to use 1 texel (#212)
Build System & Tooling
- Build Configuration: Fixed target directory configuration when directory doesn't exist
- Package Optimization: Removed deprecated XSML support to reduce package size (#218)
Documentation & Development
- Test Coverage: Added GLSL patcher test case
- Documentation: Updated Rust version notes and navigator.gl type checking guide
- Development Workflow: Updated copilot instructions for npm ci usage
v0.9.0
New Features & Improvements
CSS & Styling Enhancements
- CSS Transform Parser: Replaced Rust CSS transform parser with C/C++ implementation for better performance (#176)
- Background Properties: Added support for
background-clip
,background-origin
, andbackground-repeat
properties (#135, #125) - Background Blend Mode: Added support for
background-blend-mode
CSS property (#119) - Background Images: Support for
background-image
withurl()
and gradient rendering (#117, #123) - CSS Parsing: Enhanced CSS parsing with specified classes for background-image
HTML & DOM Features
- HTMLInputElement: Added comprehensive HTMLInputElement support (#148)
- HTMLIFrameElement: Added basic HTMLIFrameElement and JSAR.UniversalRenderingServer for unified rendering debugging (#127)
- Document API: Added
document.write
and*.writeln
methods - HTML Parsing: Enhanced HTML parsing with support for unquoted attribute values (#103)
- Attribute Parsing: Support for attributes without values and improved PCDATA tag parsing
- HTML Volume: Set HTML volume mask depth to 0.05 and added offset to remove gaps between background and borders
Rendering & Graphics
- Layered Rendering: Support for rendering web content in layers (#172)
- SVG Support: Added SVG image rendering capabilities (#169)
- DPR Support: Implemented device pixel ratio support in web content rendering
- Renderer Refactoring: Complete refactor of the builtin scene renderer
- Render Pipeline: Refined render pipeline and improved offscreen pass with computation graph
- Environment Mapping: Added environment mapping test files and examples
- Layer Calculation: Calculate layer field for each LayoutObject (#174)
Inspector & Debugging
- Chrome DevTools Protocol: Added basic CDP support with Runtime and Example domains (#121)
- WebSocket Support: Added WebSocket support to prepare for Chrome DevTools Protocol integration (#106)
- MDN Compatibility: Implemented MDN-compatible browser compatibility data structure (#108)
- Inspector Logs: Added
/:id/logs
endpoint for better debugging - Enhanced Debugging: Support for unified rendering backend debugging
Examples & Testing
- Transmute Browser: Renamed simulator to transmute_browser (#178)
- Rendering Modes: Updated args parsing with support for mono/stereo rendering modes (#159)
- LeaferJS Support: Added support for LeaferJS base usage in fixtures
Build & CI Improvements
- Deployment Permissions: Added write permissions for deploy-website workflow
- Memory Optimization: Specified Node options to increase V8 memory limits
- Lint Fixes: Fixed various lint errors throughout the codebase
What's Changed
- Add WebGPU backend to support the record/submit draw calls on render textures by @yorkie in #94
- client, graphics: fix commandbuffer responses dispatching to the corr… by @yorkie in #96
- Fix HTML parsing to support unquoted attribute values by @Copilot in #103
- Create browser compatibility visualization webpage at /docs by @Copilot in #104
- inspector: Add WebSocket support for Chrome DevTools Protocol integration by @Copilot in #106
- Implement MDN-compatible browser compatibility data structure for JSAR Runtime by @Copilot in #108
- cssom: support parsing background-image and render as a grad effect by @yorkie in #117
- Add support for background-blend-mode and background-clip CSS properties by @Copilot in #119
- Add basic CDP support to inspector with Runtime and MyExample domains by @Copilot in #121
- Add CSS background-origin and background-repeat properties support by @Copilot in #125
- Support extracting gradient data from computed image values for background rendering by @Copilot in #123
- Add CONTRIBUTING.md to guide contributors and copilot by @Copilot in #138
- Implement
background-clip: text
CSS property support in web content renderer by @Copilot in #135 - Add technical blog posts for community promotion highlighting recent JSAR developments by @Copilot in #136
- Add CDP Domain
JSAR.UniversalRenderingServer
for unified rendering backend debugging/controls by @Copilot in #127 - client: change all web content to be transparents and add depth-only pass by @yorkie in #144
- Add support for spatial (stereo) image rendering via
spatial="stereo"
attribute by @Copilot in #131 - dom: move the native fetch() to RuntimeContext to decrease the async handles by @yorkie in #149
- Add HTMLButtonElement support by @Copilot in #147
- Add blog post: "I Added Stereo
Rendering to Our Browser Engine — With Copilot" by @Copilot in #152
- Implement toJson() methods for command buffer classes and enhance JSAR vGPU Profiler integration by @Copilot in #146
- Fix createTextPath CJK glyph extraction for mixed CJK/English text by @Copilot in #151
- Adjust click event threshold for XR Device ray interaction from 1px to 5px by @Copilot in #100
- Fix Android crash by enabling C++ exception handling in CMake configuration by @Copilot in #156
- Add basic HTMLIframeElement support for DOM creation and recognition by @Copilot in #162
- Add SVG decoding and rendering support to ImageCodec with optional scaling by @Copilot in #169
- Support rendering web content in layers by @yorkie in #172
- Support single-view XRFrame and update desktop_opengl example for XR rendering modes with improved CLI by @Copilot in #159
- Add HTMLInputElement support to JSAR runtime by @Copilot in #148
- Add layer field to LayoutObject with current-node-based calculation and integrated debugging by @Copilot in #174
- Implement configurable cube map environment renderer with enhanced mouse controls, smooth cubic easing animation, and platform-specific window styling for JSAR desktop simulator by @Copilot in #178
- Replace Rust CSS transform parser with C/C++ implementation supporting negative values by @Copilot in #176
- Add GitHub Action to deploy docs with custom build support to gh-pages by @Copilot in #184
- Support configurable window dragging region for macOS examples with perfect mouse-window alignment by @Copilot in #180
- Refactor docs HTML sections to use VitePress with complete manual documentation by @Copilot in #187
- Release 0.9.0: Core technical improvements and feature additions by @Copilot in #188
Full Changelog: amidala-v0.8.2...amidala-v0.9.0
v0.8.2
Fixes
- Fix the commandbuffer responses dispatching in client-side graphics
v0.8.1
Improvements
- Optimize rendering pipeline to support offscreen rendering correctly.
- Speed up the graphics initialization of each content process.
Fixes
- Correct the FCP timing for actual writing to the color buffer in the shared render target.
v0.8.0
New Features & Improvements
Rendering Enhancements
- Renderer Pipeline Overhaul
- Replaced single
onFrame
tick with discrete render passes for finer-grained control over each rendering stage - Introduced
UnityRenderPassEvent
and dispatches per-pass events inOnUnityRenderEvent
- Added new lifecycle methods (
onBeforeRendering
,onOpaquesRenderPass
,onTransparentsRenderPass
,onAfterRendering
) inTrEmbedder
andTrConstellation
- Refactored renderer interfaces and updated OpenGL example to utilize new pass methods
- Replaced single
- Context Management
- Introduced new
ContextGLHost
/ContextGLApp
classes to replace legacy context storage - Added
iterateContentRenderers
API for enhanced renderer iteration - Implemented framebuffer attachment helpers with improved debug output including stencil state
- Introduced new
Inspector & Debugging
- Monitoring Capabilities:
- Extended inspector with new
/json/statistics
endpoint for better runtime monitoring - Enhanced debug output with stencil buffer state information
- Extended inspector with new
DOM Updates
- Content Manipulation
- Added support for setting
textContent
property - Enhanced DOM element manipulation capabilities
- Added support for setting
XML Processing
- Parser Improvements
- Added support for parsing script/style tags as plain character data.
- Improved XML parsing reliability for web content
Developer Experience
- Tracing & Diagnostics:
- Added trace support for generate-document capability in threepio
- Enhanced debugging and development workflow
HTML & CSS Features
- HTML Element Enhancements:
- Added support for rendering
<canvas>
elements via Web Canvas API
- Added support for rendering
- CSS Features:
- Added support for
absolute
andfixed
positioning. - Added support for unit in
transform
property.
- Added support for
Fixes & Optimizations
Bug Fixes
- Connection Management: Fixed invalid connection handling from forked child processes in hived
- Build System: Resolved lint errors in the build process
- Stencil Buffer: Addressed stencil buffer issues through renderer refactoring (#92)
Maintenance
- Dependencies: Upgraded jsar-dom version for improved compatibility
- Animations: Updated animation system components
v0.7.2-rc-20250623
Fix an issue which causes the failure to send the messages to hived, commits are:
- hived: ignore the invalid connection from forked child processes
v0.7.2
New Features & Improvements
Rendering Enhancements
- WebGL Improvements:
- Optimized WebGL texture handling with anisotropic filtering.
- Improved support for the
EXT_texture_filter_anisotropic
extension. - Enhanced WebGL context attributes for better XR compatibility.
DOM Updates
- Event Handling:
- Added new event constructor types including
MouseEvent
,PointerEvent
, andXRSessionEvent
. - Enhanced
EventTarget
to provide detailed event type mappings and dispatching.
- Added new event constructor types including
- Document Features:
- Introduced
Document.timeline
for animation timelines. - Enhanced
Document.appendStyleSheet()
to manage styles dynamically.
- Introduced
HTML Enhancements
- Image Element:
- Improved
<img>
element to handleonload
andonerror
events asynchronously. - Optimized image decoding with fallback mechanisms for error handling.
- Improved
- Web Content Updates:
- Added support for logical dimensions (
logicalWidth
andlogicalHeight
) for web content rendering. - Improved device pixel ratio handling in
WebContent
.
- Added support for logical dimensions (
Fixes & Optimizations
Performance Optimizations
- Rendering Pipeline:
- Optimized text and element rendering by marking dirty nodes and reducing unnecessary updates.
- Improved layout computation efficiency for dynamic content.
- Event Dispatch:
- Fixed hit testing for mouse events to handle
mouseleave
andmouseout
scenarios properly.
- Fixed hit testing for mouse events to handle
Bug Fixes
- Fixed issues with
CSSStyleDeclaration
caching to ensure seamless style updates. - Resolved memory leaks in image decoding processes.
- Addressed rendering bugs for logical dimensions in
WebContent
. - Fixed service memory leaks in destroying content processes.
- Added maximum size for the image and texture at client-side and server-side to prevent out of memory issues.
- Fixed the resource caching issues, now the caching follows the standard HTTP caching rules.
amidala-v0.3.1-alpha.20240115
update jsar-dom version
amidala-v0.3.1-alpha.1
generate oss path always by posix path
v0.3.0-alpha.12
fix vars