Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:53
0f6c1ec

Bug Fixes

  • Open a window instead of taking the desktop
  • Honour alpha-channel priority for rg88 and r8
  • Decode with the stream's own colour matrix
  • Sample the screen under the layer, not the whole scene
  • Find a unique buffer under its per-layer name
  • Load a text input that has no value
  • Open the package the project names
  • Read a text layer's markup instead of drawing it
  • Keep effect buffers out of the texture lookup
  • Keep the base pass of a layer others draw from
  • Leave the built-in inverse alone on modern GLSL
  • Narrow a wide value the way HLSL does
  • Narrow into swizzled targets and locals too
  • Never narrow the name a line declares
  • Let the compiler's own error mend a conversion
  • Leave matrix arithmetic at full width
  • Read a not on a float as a zero test
  • Mend HLSL-isms from the compiler's own diagnostic
  • Animate spritesheets whose last page is short
  • Place the web host on the wallpaper's own output
  • Place particle systems the same way up as everything else
  • Keep the wallpaper still when the cursor is elsewhere
  • Size text layers by their authored box
  • Resolve script properties bound to user settings
  • Draw scene-reading donors at their own z-slot
  • Flip WE screen-space varyings for wgpu
  • Sample the scene through the compose layer quad
  • Ship the reference WEMath, WEColor and WEVector modules
  • Hand update() typed vectors and alias thisObject
  • Run every init before the first update
  • Expose layer size and accept createLayer configs
  • Hide text layers whose text goes empty
  • Build hidden and empty text layers
  • Key bundles by the baking binary
  • Resolve label properties to empty text
  • Apply user properties once at load
  • Run text scripts only as modules
  • Move text layers with their parent chain
  • Anchor image layers by their alignment
  • Size text once and anchor it by alignment
  • Snap text quads to whole pixels
  • Lay text out with the font's line metrics
  • Pad text rasters like the engine
  • Raster effect text at the engine's em size
  • Expose text layer font and pointsize like WE
  • Pass layer angles to scripts in degrees
  • Report the cursor world position y-up
  • Read the relative flag from the animation block
  • Wrap at maxwidth in the text's own pixels
  • Move compose-layer donors with scripted transforms
  • Drop samplers compiled out by combos
  • Derive the scene redraw hint from what the scene reads
  • Keep numeric combo values numeric
  • Parse every MDLA clip behind the version trailers
  • Additive layers offset from the bind pose
  • Derive puppet vertex layout from the mesh flags
  • Walk model mesh headers by the format rules
  • Keep every band's peak in the 16- and 32-band spectrum
  • Reject a NUL byte instead of panicking in shaderc
  • Interrupt a runaway wallpaper script
  • Cap the script heap so a runaway cannot balloon memory
  • Assert a runaway allocation stops, not which limit trips
  • Pass the output position through to the renderer

Features

  • Name a render target that resolves to nothing
  • Name a texture that will not load
  • Read MDLV0016 and MDLV0019 puppet meshes
  • Parse text effects and sound volume
  • Load text effect and sound volume scripts
  • Let scripts write thisScene settings
  • Parse property animations
  • Play keyframed property animations
  • Expose property animations to scripts
  • Drive property animations from scripts
  • Run effects on text layers
  • Render text layers created by createLayer
  • Rotate text layers about their origin
  • Cut rows past maxrows like the engine
  • Run pointsize and maxwidth property scripts
  • Honour --render-debug skip-effect
  • Evaluate compound preprocessor conditions
  • Honour base-only, no-solid-final and pass-log
  • Forward page console with KIRIE_WEB_CONSOLE
  • Add a puppet animation layer player
  • Read animation layer name and additive flag
  • Play puppet animation layers
  • Play mirror clips and report ended layers
  • Drive puppet animation layers from scripts
  • Name a blank project.json for what it is

Miscellaneous

  • Allow build_for_spec's argument count

Other

  • Format
  • Format
  • Format

Refactoring

  • Drop the surface size the renderers never read
  • Name the shared vertex layout for what it is

Tests

  • Fuzz every parser against mutated real files
  • Fuzz scene parsing against mutated input

Downloads

All assets are standalone executables — download, chmod +x, run.

File Variant
kirie-linux-x86_64 scenes + video + images
kirie-web-cef-linux-x86_64 + web wallpapers, bundled Chromium (self-extracting, no system deps)
kirie-web-webview-linux-x86_64 + web wallpapers via the system webkit, presented natively on the compositor's background layer. One file — the webkit host is built in. Needs webkit2gtk-4.1, libsoup3, gtk-layer-shell installed; web items are Wayland-only.
kirie-macos-aarch64 Apple Silicon — scenes, video, images, and web wallpapers through the system WebKit. Self-contained; run xattr -d com.apple.quarantine kirie-macos-aarch64 once, since it is not notarized.