<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/rust, branch main</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/rust?h=main</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/rust?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-08-08T08:40:16Z</updated>
<entry>
<title>fix: keep GPU effect previews from clobbering the preview canvas</title>
<updated>2026-08-08T08:40:16Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-08-02T17:59:59Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=29f1c9932a5c50c36e6a35f6d6539c2aceee983e'/>
<id>urn:sha1:29f1c9932a5c50c36e6a35f6d6539c2aceee983e</id>
<content type='text'>
On the WebGL backend wgpu can only present to the single canvas its GL
context is bound to, which is also the compositor's output canvas. The
effect tile previews (and mask feather) rendered through that canvas
and resized it behind the compositor's back, leaving the main preview
showing the preview image stretched until a full reload.

TS side (works with the published wasm): after every applyEffectPasses/
applyMaskFeather call the gpu renderer restores the canvas size, using
a one-pixel intermediate resize to force a surface reconfigure, then
notifies the preview component to re-render the current frame.

Rust side (next wasm publish): the GL canvas detour saves and restores
the canvas size, and resizeCompositor always reconfigures the surface.
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T18:44:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T18:44:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6b1f38a9a31a0eedaa7abea70f232960469351d5'/>
<id>urn:sha1:6b1f38a9a31a0eedaa7abea70f232960469351d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: centralize editor interaction state</title>
<updated>2026-04-25T01:56:22Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-25T01:56:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6a22a3ecbdff2d0e6a4c24c8db40bb86bc01b692'/>
<id>urn:sha1:6a22a3ecbdff2d0e6a4c24c8db40bb86bc01b692</id>
<content type='text'>
Move timeline and preview gestures into dedicated controllers so hooks stay thin around editor state and DOM events.

This also routes drag and playback synchronization through manager APIs and reuses persistent wasm surfaces so scrubbing, seeking, and preview rendering stay in sync.

Made-with: Cursor
</content>
</entry>
<entry>
<title>perf: improve rendering performance by ~20x</title>
<updated>2026-04-22T14:48:37Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T14:48:37Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=cceb835a84c125990ad8e49784e01a7c52636bb3'/>
<id>urn:sha1:cceb835a84c125990ad8e49784e01a7c52636bb3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: bump opencut-wasm version</title>
<updated>2026-04-22T12:24:28Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T12:24:28Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=7428dc75cfef15481ad747806e81309a5a99e3a9'/>
<id>urn:sha1:7428dc75cfef15481ad747806e81309a5a99e3a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: wasm WebGL only until WebGPU is fixed</title>
<updated>2026-04-22T12:20:40Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T12:20:40Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=1301d027e94effbf329f9c1e9b6e937f58aa1a81'/>
<id>urn:sha1:1301d027e94effbf329f9c1e9b6e937f58aa1a81</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: WebGL frame rendering and opencut-wasm 0.2.8</title>
<updated>2026-04-19T05:42:52Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-19T05:42:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=729d10592f4e802f91c555c309ff3ba4b119f843'/>
<id>urn:sha1:729d10592f4e802f91c555c309ff3ba4b119f843</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: align LayerUniformBuffer to 16 bytes for WebGL compat</title>
<updated>2026-04-18T13:01:59Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-18T13:01:59Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=794d4ae149f50bc24c793ba1e9cc2312e0d21f37'/>
<id>urn:sha1:794d4ae149f50bc24c793ba1e9cc2312e0d21f37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: bump opencut-wasm to 0.2.5</title>
<updated>2026-04-13T03:08:29Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-13T02:59:53Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=3d9d669cb96a74388b879996c9a98a1f22c79a3b'/>
<id>urn:sha1:3d9d669cb96a74388b879996c9a98a1f22c79a3b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: wasm compositor</title>
<updated>2026-04-13T03:01:51Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-13T02:40:29Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=8230faf082c405c9fd0fa640f4ce2284315782ae'/>
<id>urn:sha1:8230faf082c405c9fd0fa640f4ce2284315782ae</id>
<content type='text'>
Made-with: Cursor
</content>
</entry>
</feed>
