Skip to content

Z-GL 1.1.0 — The Premier Shader Desktop Environment

Choose a tag to compare

@Patrickjaillet Patrickjaillet released this 15 May 22:47
9cfae9e

Changelog

All notable changes to the Z-GL shader desktop editor project for version 1.1.0 are documented below. This release primarily establishes the native desktop infrastructure for Windows 10/11 and advances the shader development workflow.


[1.1.0] - 2026-05-16

Added

  • Native OS Window Integration: Switched to a frameless architecture leveraging native window decorations. Added a custom title bar with explicit drag regions, minimize, maximize, and close controls tailored for Windows 11 design guidelines.
  • Mica & Acrylic Visuals: Integrated the window-vibrancy Tauri plugin to inject native Windows 11 Mica and Acrylic blur effects into the application layout shell.
  • System Tray Management: Added a dedicated system tray icon featuring a native context menu allowing users to quickly Open the application instance, Pause Render execution to save processing cycles, or trigger a clean Quit.
  • Dynamic Title Tracking: Added a title management routine updating the native OS window bar dynamically via window.setTitle(shaderName) during file imports or internal asset operations.
  • Native File System Dialogs: Replaced standard web file picking hooks with secure, native OS file picking procedures powered by the Tauri dialog plugin API (openFileDialog, saveFileDialog).
  • Drag-and-Drop Infrastructure: Implemented native file-drop interceptors enabling direct instantiation and parsing of .glsl, .frag, .fs, and .json file types dropped over the active viewport area.
  • Windows Explorer Association: Added full file association capabilities via the NSIS compilation layout, allowing .glsl, .frag, and .fs files to launch natively within the Z-GL environment directly from disk.
  • CLI Boot Operations: Added deep CLI argument routing support, allowing execution sequences like z-gl.exe shader.glsl to directly parse and ingest localized source fragments at startup.
  • Local Application Hub Tracking: Introduced an automated Most-Recently-Used (MRU) tracking database in the File utility tree, maintaining the 10 most recent filesystem paths across individual application sessions.
  • Project Structure Packaging (.zgl): Developed a localized project archiving protocol utilizing the current ZIP bundle mechanism. A .zgl archive bundles the core shader.glsl, a standard metadata file (meta.json), references to explicit input streaming channels (channels/), and localized multi-variable presets (presets/).
  • Background Auto-Save Engine: Added a resilient auto-save pipeline writing persistent cache structures to a temporary data node every 30 seconds, coupled with automated recovery procedures triggered on unhandled app crashes.
  • Hot-Reload Disk Watcher: Exposed an automated file monitoring option leveraging Tauri's system event detection loop to dynamically hot-reload asset sources on disk when edited inside an external IDE.
  • Shader Channel Embedding: Configured an asset copying pipeline within the bundle logic to import and inline local channel streams (textures, audio targets) directly into the portable .zgl wrapper format.
  • High-Resolution Frame Pacing: Enhanced the master RAF sequencer (raf-loop.js) with native support for requestVideoFrameCallback timestamps to maintain exact synchronization with high-refresh display hardware.
  • WebGPU Metric Analysis: Added dedicated GPU timing reporting routines within the performance UI layer, driven by native WebGPU timestamp-query pipelines to calculate execution durations independently of JS main-thread runtime overhead.
  • Fixed-Ratio Screen Profiling: Added predefined rendering resolution options (720p, 1080p, 1440p, 4K) running independently of the active viewport scaling metrics.
  • Headless Screenshot Rendering: Added an alternative rendering pipeline utilizing OffscreenCanvas hooks for generating unthrottled screenshots and batch image exports without visual viewport stutter.
  • Advanced Environment Diagnostics: Extended the performance dashboard to handle WebGL hardware extension evaluations, tracking specific runtime boundaries like maximum texture dimensions, floating-point texture alignment parameters, and MSAA sample counts.
  • Monaco GLSL Language Service: Added a dedicated language registration package (monaco.languages.register) supporting GLSL ES 3.0 within the editor core.
  • TextMate Highlighting Specification: Implemented a comprehensive TextMate grammar definition specifying unique highlighting behaviors for key operations, preprocessor controls, specific type variables, and internal constants.
  • Semantic Token Profiling: Isolated core ShaderToy Uniform tokens (iTime, iResolution, iMouse, iChannel0-3) into distinct coloring criteria to differentiate system properties from arbitrary user definitions.
  • Interactive API Documentation Tooltips: Integrated an inline hover service (monaco.languages.registerHoverProvider) mapping full signature details and parameter instructions to standard GLSL primitives and built-in uniforms.
  • Intelligent Auto-Completion Registry: Bound automated snippet injection utilities providing template structures for common rendering techniques, Signed Distance Field (SDF) functions, and structural main blocks.
  • Live Gutter Error Parsing: Connected an active syntax compiler that intercepts WebGL translation faults and binds red line/column error decorations to the text editor channel via monaco.editor.setModelMarkers.
  • WGSL Compatibility Warners: Implemented diagnostic analyzer tracking for cross-compilation hazards (implicit data casting discrepancies, unstable ternary usage inside multi-layered operations, or array indexing anomalies) using yellow warning indicators.
  • Structural Code Utilities: Activated multi-cursor edit paths, internal definition tracing routines, folding layouts for active preprocessor structures, custom color-coded bracket rules, and an AST-based command palette hookup.
  • WGSL Transpiler Optimization: Upgraded the internal GLSL-to-WGSL transpilation module to safely map and unroll complex macro commands, structure loops, samplerCube binds, precision scopes, and explicit channel sampling formats (textureLod mappings).
  • WGSL Real-Time Preview Panel: Introduced a split-pane structural view layout to actively inspect transpiled WGSL code side-by-side with the current GLSL source.
  • WASM-Driven Input Verification: Embedded a local server-less version of the glslang compiler engine running in WebAssembly to analyze structural health prior to hardware execution passes.
  • Dedicated WebGPU Pipeline Upgrade: Configured the WebGPU rendering framework to support structural multi-pass execution pipelines (Buffers A/B/C/D) via atomic GPUTexture ping-pong feedback loops, explicit pass-by-pass timestamp tracing, and HDR canvas target alignments (rgba16float).
  • Timeline Keyframe Layout System: Designed a professional layout editor featuring an analytical curve view and an active dope-sheet timeline to bind, manipulate, and drag parameter values across linear, constant, or customized Bézier interpolation models.
  • WebCodecs Rendering Exporters: Integrated hardware-accelerated video rendering routines into the application shell using WebCodecs options to process frame-accurate MP4, WebM, or PNG sequence exports.

Changed

  • Macro Memory Execution Barriers: Unified all active frame routines into a singular system loop managed by gl/renderer.js to strictly maintain structural downward asset layers.
  • Zero GC Uniform Write Pipeline: Refactored the core configuration structure to funnel input parameters using modern SharedArrayBuffer structures and Atomics memory operations, completely removing garbage collection performance hitches.
  • Optimized Vertex Buffering Layout: Replaced standard Three.js PlaneGeometry arrays with a single full-screen triangle optimization routine to decrease processing requirements down to a single draw call without indexing overhead.