Skip to content

Releases

Release 0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 13:07

0.3.0 (2026-11-11)

Bug Fixes

Performance Improvements

  • push JS-thread writes from the shared slot block (#24) (41ec8c1)

Release 0.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:25

0.2.0 (2026-11-04)

Bug Fixes

  • ios: drain autoreleased Metal objects on the offscreen worker (#19) (cdcb4e5)
  • make scaleDown shrink images larger than their box (#16) (db080a0)
  • scene: report declared indices in hit paths after clustering (#17) (7a5977d)

Performance Improvements

  • push animated values from the shared slot block (#20) (8d38e3d)

Release 0.1.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 20:50

0.1.0 (2026-11-02)

⚠ BREAKING CHANGES

  • image: Image takes a source; TgfxImage is the handle-taking host tag (#245)
  • camera: TgfxViewMethods.drawCameraFrame is removed. It drew the
    frame and blurred a polygon list without replaying the scene, so no child of
    the React tree was drawn on a camera canvas. Use
    inside a normal ; contours stay in frame pixels either way.
  • android: Vulkan is the default backend; TgfxVulkan=OFF falls back to GL (#252)

Features

  • adb-driven memory-leak gate (#258) (3daa970)
  • add 3D transforms and preserve3d to Group (3c85c10)
  • add Fill and useClock (#114) (43b5985)
  • android: experimental Vulkan backend + registry-wake regression fix (#218) (b4eb393)
  • android: Vulkan is the default backend; TgfxVulkan=OFF falls back to GL (#252) (73b94a4)
  • animate shader uniforms on the UI thread (#113) (19bcc78)
  • atlas: draw many sprites from one image in a single op (#199) (27655b0)
  • Blend and ColorShader shaders, and composing filters (468216c)
  • camera: a native frame-processor plugin, and a C++ export contract for it (#149) (#154) (dc89078)
  • camera: camera frames as a scene input via (#148) (bb3dc94)
  • camera: useCameraFrame owns the buffer lifetime (#149) (#152) (65d0b80)
  • Canvas.snapshot() and Canvas.save() without stalling the render loop (#137) (9e9c324)
  • canvas: a fonts prop that registers faces and gates children (#244) (2987433)
  • canvas: a SharedValue viewport, driven from the UI thread (#235) (756b0fa), references #234
  • color: accept CSS Color 4 color(display-p3 ...) syntax (#208) (6d860c8)
  • color: draw on a display-p3 surface and tag snapshots with its space (#209) (f43c2c1)
  • compiler: workletize the compile graph (#246) (8aa90b7)
  • composite prop to choose SurfaceView or TextureView on Android (d5623b0)
  • docs: add an animated figure to the overview page (b01ceb6)
  • docs: add animated figures to the drawing, effects and motion pages (926561f)
  • docs: add per-page Open Graph images (f24b94d)
  • docs: port the VisionCamera docs design with a purple accent (c46c751)
  • effects: film grain over a group, from tgfx's NoiseStyle (#229) (45506d2)
  • example: add a 3D cube screen (5277836)
  • example: add physics screen (88227b0)
  • example: camera effects screen with a neon-edge runtime shader (885b09c)
  • filters: an alpha threshold, and a colour filter that can follow an image filter (#228) (1eb2016)
  • fromPixels and setPixels for decoded RGBA (738a0d8)
  • getCacheInfo and purgeCaches — cache introspection and an immediate purge (#259) (8800cb4)
  • glass: expose the light, and make the whole material animate (#225) (b7aa8c7)
  • Group clip, invertClip and layer (856f515)
  • headless: callable forms for the clock, video pump, camera sink, buffers and press dispatch (#241) (ea2f53e)
  • hittest: report which nodes are under a canvas point (#205) (bb0c142)
  • image: draw SVG documents as image sources (9065e8f)
  • image: draw SVG documents as image sources (#169) (5b9bad6)
  • image: encode to bytes and save to disk from any image handle (#239) (8e9285c)
  • image: Image takes a source; TgfxImage is the handle-taking host tag (#245) (0f9bb59)
  • image: native image handles, hardware buffers, and Skia-parity + (#136) (472d471)
  • image: subset, scaled, oriented and blurred handles that share the parent decode (#202) (4b7cafb)
  • imperative: colour, transform and uniform slots, plus an imperative docs page (#161) (63f567a)
  • imperative: node handles that change a mounted scene without React (#155) (#156) (0c6ddaa)
  • imperative: slot coverage for the whole surface — text, path, image, gradients, filters, enums, visibility, shared buffers (#213) (7a0af16), closes #204
  • inner shadow, Luma and AlphaThreshold filters ([8fdb652](https://github.com/margelo/re...
Read more