Step 3 of #39, for 26.2. It also fixes the glass blur on 26.1, and points common at saturnclientmc/common#14. 26.3 comes in a follow-up: it replaces GLFW with SDL3, which changes key codes, and Blaze3D with a new rendering API ("renderpearl").
Commits
Build for Minecraft 26.2. 26.2 moves the HUD into Hud, and the open screen, overlay and toasts from Minecraft to Gui.
A new Screens helper gets and sets the screen and clears the overlay on every version. MinecraftClientMixin now opens screens through it instead of shadowing Minecraft.setScreen.
SetScreenMixin and the HUD hook follow the moves.
The glass pipeline declares its second sampler through 26.2's bind group layouts, and its backdrops are RGBA8_UNORM, as vanilla's targets are.
Blur the glass backdrop once the frame's world is drawn on 26.x. From 26.1 the GUI is built before the frame is drawn. The glass copied the previous frame, glass included, so the blur built up until it bloomed. The copy and blur now run as GuiRenderer is about to draw, with the world and panorama drawn and no GUI yet.
Note in the version guide that version blocks can nest. Stonecutter 0.9 writes nested inactive blocks as /^ … ^/.
All versions compile, and a Stonecutter round trip through 26.2 leaves src/ unchanged.
A script found no missing mixin target names in the 26.2 game jar.
26.2, 1.21.4 and 1.21.11 start in dev without errors.
Emotes, cloaks and hats tested in a world on 26.2.
On 26.2's title screen, the glass stays the same between captures taken 15 s apart. Glass over a world after the fix, and 26.1 after the fix, haven't been checked yet.
Step 3 of #39, for 26.2. It also fixes the glass blur on 26.1, and points `common` at saturnclientmc/common#14. 26.3 comes in a follow-up: it replaces GLFW with SDL3, which changes key codes, and Blaze3D with a new rendering API ("renderpearl").
## Commits
- **Build for Minecraft 26.2.** 26.2 moves the HUD into `Hud`, and the open screen, overlay and toasts from `Minecraft` to `Gui`.
- A new `Screens` helper gets and sets the screen and clears the overlay on every version. `MinecraftClientMixin` now opens screens through it instead of shadowing `Minecraft.setScreen`.
- `SetScreenMixin` and the HUD hook follow the moves.
- The glass pipeline declares its second sampler through 26.2's bind group layouts, and its backdrops are `RGBA8_UNORM`, as vanilla's targets are.
- **Blur the glass backdrop once the frame's world is drawn on 26.x.** From 26.1 the GUI is built before the frame is drawn. The glass copied the previous frame, glass included, so the blur built up until it bloomed. The copy and blur now run as `GuiRenderer` is about to draw, with the world and panorama drawn and no GUI yet.
- **Note in the version guide that version blocks can nest.** Stonecutter 0.9 writes nested inactive blocks as `/^ … ^/`.
- **Point common at saturnclientmc/common#14**, which removes the pre-0.1.3 theme color upgrade.
## Checked
- All versions compile, and a Stonecutter round trip through 26.2 leaves `src/` unchanged.
- A script found no missing mixin target names in the 26.2 game jar.
- 26.2, 1.21.4 and 1.21.11 start in dev without errors.
- Emotes, cloaks and hats tested in a world on 26.2.
- On 26.2's title screen, the glass stays the same between captures taken 15 s apart. Glass over a world after the fix, and 26.1 after the fix, haven't been checked yet.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Adds 26.2 as a Stonecutter version (#39).
26.2 splits the HUD out of Gui into Hud and moves the open screen, the
overlay and the toasts from Minecraft to Gui. A new Screens helper gets
and sets the screen and clears the overlay on every version, and
MinecraftClientMixin opens screens through it instead of shadowing
Minecraft.setScreen. SetScreenMixin targets Gui.setScreen and the HUD
hook Hud.extractChat on 26.2.
26.2's rendering API declares samplers through bind group layouts and
gives render targets a GpuFormat, so the glass pipeline adds SAMPLER1's
layout and its backdrops are RGBA8_UNORM like vanilla's targets. The
main render target is the game renderer's, the panorama no longer takes
a fade flag, and toasts are added with SystemToast.add.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Stonecutter 0.9 writes an inactive block inside another as /^ ... ^/,
so nesting works (GlassRenderer relies on it since 26.1). else if is
still clearer for several ranges of the same code.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
From 26.1 the GUI is built before the frame is drawn. The glass copies
the main framebuffer while the GUI is built, so it copied the last
frame, glass included, and each frame blurred the previous blur until
it bloomed.
On 26.1+ captureBackdrop now only prepares the backdrop and queues its
blur. GuiRendererMixin copies and blurs the queued backdrops as the GUI
renderer is about to draw, with the world and panorama drawn and no GUI
yet. Pending backdrops are never released before they're drawn.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Step 3 of #39, for 26.2. It also fixes the glass blur on 26.1, and points
commonat saturnclientmc/common#14. 26.3 comes in a follow-up: it replaces GLFW with SDL3, which changes key codes, and Blaze3D with a new rendering API ("renderpearl").Commits
Hud, and the open screen, overlay and toasts fromMinecrafttoGui.Screenshelper gets and sets the screen and clears the overlay on every version.MinecraftClientMixinnow opens screens through it instead of shadowingMinecraft.setScreen.SetScreenMixinand the HUD hook follow the moves.RGBA8_UNORM, as vanilla's targets are.GuiRendereris about to draw, with the world and panorama drawn and no GUI yet./^ … ^/.Checked
src/unchanged.🤖 Generated with Claude Code