Skip to content

Releases: M-CreativeLab/jsar-runtime

v0.10.0

29 Aug 08:00
6f20b01
Compare
Choose a tag to compare

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() and createComment() 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 and clearBuffer methods (#205)

CSS & Styling

  • CSS Selectors: Exposed selectors text at style rule level (#239)
  • CSS Filters: Implemented parsing for CSS filter and backdrop-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 in BufferDataCommandBufferRequest
  • 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

04 Aug 06:38
618a444
Compare
Choose a tag to compare

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, and background-repeat properties (#135, #125)
  • Background Blend Mode: Added support for background-blend-mode CSS property (#119)
  • Background Images: Support for background-image with url() 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

17 Jul 12:00
Compare
Choose a tag to compare

Fixes

  • Fix the commandbuffer responses dispatching in client-side graphics

v0.8.1

16 Jul 10:48
Compare
Choose a tag to compare

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

08 Jul 17:32
Compare
Choose a tag to compare

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 in OnUnityRenderEvent
    • Added new lifecycle methods (onBeforeRendering, onOpaquesRenderPass, onTransparentsRenderPass, onAfterRendering) in TrEmbedder and TrConstellation
    • Refactored renderer interfaces and updated OpenGL example to utilize new pass methods
  • 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

Inspector & Debugging

  • Monitoring Capabilities:
    • Extended inspector with new /json/statistics endpoint for better runtime monitoring
    • Enhanced debug output with stencil buffer state information

DOM Updates

  • Content Manipulation
    • Added support for setting textContent property
    • Enhanced DOM element manipulation capabilities

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
  • CSS Features:
    • Added support for absolute and fixed positioning.
    • Added support for unit in transform property.

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

23 Jun 14:24
Compare
Choose a tag to compare

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

06 Jun 10:40
Compare
Choose a tag to compare

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, and XRSessionEvent.
    • Enhanced EventTarget to provide detailed event type mappings and dispatching.
  • Document Features:
    • Introduced Document.timeline for animation timelines.
    • Enhanced Document.appendStyleSheet() to manage styles dynamically.

HTML Enhancements

  • Image Element:
    • Improved <img> element to handle onload and onerror events asynchronously.
    • Optimized image decoding with fallback mechanisms for error handling.
  • Web Content Updates:
    • Added support for logical dimensions (logicalWidth and logicalHeight) for web content rendering.
    • Improved device pixel ratio handling in WebContent.

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 and mouseout scenarios properly.

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

15 Jan 14:35
Compare
Choose a tag to compare
update jsar-dom version

amidala-v0.3.1-alpha.1

12 Jan 21:00
Compare
Choose a tag to compare
generate oss path always by posix path

v0.3.0-alpha.12

28 Dec 14:00
Compare
Choose a tag to compare
fix vars