## RandyGaul/cute_framework — 1.1.1…lkg-hrc-gi

_220+ commits._

### Features
- **hrc_gi: cycle scenes, shade surfaces from albedo, add a type scene** (e321f60)
- **Copilot/add copilot instructions (#522)** (e973713)
- **Enable test_markups suite in CI with headless GPU support (#517)** (7118e44)
- **Add mid-string font style swaps via text markup (#349) (#516)** (cd3cb36)
- **Add 9-slice support for easy sprites (#515)** (325da28)
- **Add per-sound pan control (#514)** (fa7ff23)
- **Add TextEffect compositing (#495)** (67eb88d)
- **Add gradient text effect (#494)** (126fd3f)
- **Add fluidsim sample (#486)** (7dadb74)
- **Add CF API review skills and hooks (#482)** (d6d2dc4)
- **Add cf_gpu_sync (#478)** (ce7f32e)
- **Add generation counter to try and avoid dangling sinuke cache pointers** (a6b2d29)
- **add in more upscaling tests** (7e848b1)
- **Add emscripten build (#476)** (66b5ccc)
- **Add shader reload functions to make hotloading simpler** (b28cc54)
- **added .c_shd support as file type for shader directory/hotloading** (4a809e3)
- **Support wider range of compilers and cleanup (#465)** (e9588ed)
- **Compute shader support** (637e7e2)
- **Variety of small fixes, and fixed vertex texture support** (a0812cb)
- **Add proper GPU resource cleanup code to spritebatch** (61f9229)

### Fixes
- **hrc_gi: fix self-occluding emitters, drop rim light, add scene cycling** (ac6b369)
- **Fix canvas blit erasing earlier batched shapes in a clearing pass** (a658f0a)
- **Fix baked path corruption: defrag read a stale lonely-buffer pointer** (15aec92)
- **Fix artifact packaging for shared Linux/macOS builds** (5c8d0c1)
- **Fix compute pipelines under SDL debug mode + struct ternaries in FXC** (a40ff9e)
- **Fix runtime shader failures in hrc and galaxy demos** (a4f772b)
- **Fix Metal compute: local_size was read after cspv_free wiped it** (714b318)
- **Fix gcc/clang builds: no empty variadic arguments to ckit string macros** (fea8f2b)
- **Fix dim/twinkling subpixel shapes in tiled draw-list replays** (ee8f257)
- **Fix GLES 'Nth context renders nothing': reset state caches in cf_gles_attach** (a6e3e44)
- **Fix app-layer bugs: power state, display queries, lifecycle, audio race (#523)** (db7d1f9)
- **Fix allocator functions not forwarding CF_Allocator udata (#518)** (ad386e8)
- **Fix uninitialized vertex attributes on canvas blits (#513)** (e9d4bdd)
- **Fix HiDPI text jitter from logical-point pixel snapping (#512)** (48f7e97)
- **Fix text kerning, HiDPI glyph padding, and invisible-glyph rasterization (#511)** (c78b1bc)
- **Fix sisdyna calling undefined ck_avalid (#507)** (6a73c50)
- **Fix sprite pivot calculation (#506)** (e326987)
- **Attempt build fix for emscripten** (d6e98d6)
- **Fix doc builds (#484)** (c9eb719)
- **Minor hrc fix and fix very old bug in builtin shader about texture sampling for sprite/text** (712a93b)
- **fix example block** (974f413)
- **Fix header guard in cute_symbol.h (#469)** (be3c0f1)
- **Fix draw command merging bugs** (e5e908d)
- **Fix easysprite caching bug** (6a746de)
- **build fix** (91460d1)
- **Fix text rendering, and also add binding sample** (219a667)

### Backend
- **Submit outstanding GPU frames instead of dropping them** (1ee12b9)
- **HRC 2D global illumination sample** (43ce25c)
- **Route the GLSL->SPIR-V shader compiler through cf_alloc/cf_free (#531)** (a8f6864)
- **Smoke test samples (#530)** (0d5c485)
- **Speed up Emscripten web build links (#529)** (ba22007)
- **MSL: thread-qualify cf_shader member functions (#528)** (58b3119)
- **HRC sample: dense directions, exact world-res tracing, reference test scenes** (20c606b)
- **Remove dead baked sample shader headers** (a75af26)
- **Draw colors travel as packed half4 instead of unorm8** (794fdd5)
- **Clean up vestiges of the glslang/SPIRV-Cross era** (6529578)
- **Remove cute_shader_init/cleanup: glslang-era no-ops** (9f8419e)
- **Quiet the intentional custom-shape failure: one error, announced** (0752e09)
- **MSL: atomics on vector components reinterpret the vector address** (f207e5e)
- **Delete SDL_shadercross and SPIRV-Cross: the shader pipeline is fully CF-owned** (ce60841)
- **cute_spirv v1.03: MSL transpiler backend, Metal without SPIRV-Cross** (eb01a97)
- **cute-shaderc: carry HLSL in offline bytecode headers** (57741f3)
- **Delete vendored DXC: D3D12 needs nothing shipped anymore** (7464688)
- **cute_spirv v1.02: HLSL SM 5.1 transpiler backend, D3D12 via system FXC** (2845a3f)
- **cute_spirv v1.01: GLSL ES 3.00 transpiler backend, drop SPIRV-Cross from GLES path** (666377b)
- **cute_atlas_cache.h v1.10: pure atlas cache, strip spritebatch heritage** (9f74a1a)
- **Trim unused Linux CI dependencies (#527)** (2255063)
- **Update drawing topic: paths, blend modes, draw lists, curve text** (9fb32b5)
- **Serve the renderer tour video from the docs site itself** (c3d0e0f)
- **Update renderer tour: curve text, paths, blend modes, draw lists, cute_spirv** (6ba2a7d)
- **Blend modes, vector paths, and retained draw lists** (82427e0)
- **Refresh AGENTS.md to match current codebase (#526)** (94d2b97)
- **Curve text: glyphs render from Bezier outlines by default** (8ad73ad)
- **Declare cf_destroy_shader_internal before use** (981e27f)
- **Shader compilation audit follow-ups** (46c39e7)
- **cute_spirv: replace glslang with CF's own GLSL-to-SPIR-V compiler (#525)** (57ae1f6)
- **Rewrite cute_draw as a command renderer (#524)** (901ec75)
- **Replace vsync/vsync_mailbox setters with a unified present mode API (#520)** (22e4397)
- **Route vendored single-header libs through cf_alloc/cf_free (#519)** (1e45a2a)
- **Swap atlas dimensions (#510)** (3b9204c)
- **Follow-up fixes from PR #508 review (#509)** (fee7e58)
- **HiDPI rendering tweaks (#508)** (fb6afc1)
- **Bump clay.h (#505)** (9af4d19)
- **Remove invert scaling by camera from text rendering (#503)** (2dd9066)
- **Use std::unordered_set::find instead of contains (#504)** (e70a1ba)
- **Expose the underlying SDL_Window (#499)** (f3502a0)
- **Update README.md (#498)** (f483821)
- **Undo the flipping of GLES viewport and scissor coordinates (#497)** (6dd9142)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (463b68e)
- **coro reinit** (d706312)
- **Make sure ck_sintern is not inlined (#493)** (a2c1ab1)
- **Invert Y axis binding (#492)** (496cd45)
- **Do not force ccache (#491)** (78c7c42)
- **don't include cute_array.h in cute_math.h (#490)** (86c1b68)
- **Ignore clang's compile commands symlink (#488)** (03d4dc7)
- **Extract cmake action (#485)** (d410085)
- **Update and cleanup headers (#483)** (309c411)
- **Generate samples pages in documentation (#481)** (7a0f473)
- **Added sprite blend for ase layer compositing** (8e89bc7)
- **optimize sintern** (c1d18d2)
- **Optimize common draw hot paths for debug perf (inlining)** (de72021)
- **more hrc testing options** (8b248bb)
- **trying out minmax upscaling** (4a3f441)
- **hrc tweaks** (bf0970f)
- **Bugfix where drawing a canvas can swallow subsequent draw commands -- and some HRC tweaks** (17ec62d)
- **minor tweak to tracer** (ce1eb0d)
- **more wip hrc** (4d29d4a)
- **Update HRC with 2x upscaling c-1 gathering and tracing c0-c2** (c1d49f1)
- **Export some more internal functions for clang linker on the unit tests** (b73e3e1)
- **Refactor CF_Sprite for easy hotloading, rename png cache to custom_sprite** (259d801)
- **Get pixels from sprite** (b659fb8)
- **Beef up docs pass** (5595602)
- **remove oopsie files** (0885a25)
- **Updated shader() API with ShaderParams struct** (c5c9932)
- **Remove stale docs about debug dumping** (87abcb1)
- **Just expose a proper save png API through CF** (ca83bac)
- **Swap to cpp to avoid link complexity with cute_png.h** (969ba3c)
- **gpu readback sample** (e8335e2)
- **Make the docs way more clear in the example this is *async*** (d6e6cad)
- **example in docs** (193c2b2)
- **gpu readback** (2462ab7)
- **Update hrc_merge.c_shd** (ef2ac30)
- **Update hrc_extend.c_shd** (3234a0d)
- **Update hrc_composite.c_shd** (2bfb675)
- **Update hrc_copy.c_shd** (8433f69)
- **Update hrc.c** (cc26992)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (f4e1752)
- **hrc sample** (dd0e42e)
- **Append dir when searching for shaders recursively (#473)** (cc4925f)
- **Ensure that ckit always use CF's allocator (#472)** (a13fe68)
- **Only set CMake output dir if CF is the top level project (#471)** (a48d8e8)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (c74c966)
- **Docsparser (#466)** (d828380)
- **Bump version number (#464)** (dbf4be2)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (97015e2)
- **Address color parsing and converting inconsistencies** (5107836)
- **Use Ninja on Windows (#461)** (a809ac0)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (3c8a09f)
- **Configure ccache (#460)** (220793e)
- **Fixed texture binding slot issue by tracking indices through shader reflection** (2fddb5f)
- **SDL_Gpu layer bugfixes + optimizations** (d7ad2a5)
- **Update readme on docsparser** (ccbe437)
- **Comment tweaks** (a127a63)
- **Merge branch 'master' of https://github.com/RandyGaul/cute_framework** (e8ccde6)
- **Circular deadzone, raw vals, binding repeats** (34bcd9a)
- **Use VS 2026 (#459)** (4fe7f53)
- **Remove unneeded include** (51c0583)
- **release cute_binding.h** (37bc3ef)

### Docs
- **Docs: text and vector path demo videos** (71b6b49)

### Chore
- **CI: dump test readbacks and upload them from failing macOS jobs** (fcd3718)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/RandyGaul/cute_framework?utm_source=github-action)._