Skip to content

feat(core): let a full-screen backdrop dim the world - #134

Open
oglassdev wants to merge 2 commits into
feat/fullscreen-showcasefrom
feat/fullscreen-polish
Open

oglassdev wants to merge 2 commits into
feat/fullscreen-showcasefrom
feat/fullscreen-polish

Conversation

@oglassdev

@oglassdev oglassdev commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Two follow-ups from trying the storefront.

A dimming backdrop. backdrop on <Fullscreen> now also takes #rrggbbaa. A backdrop with an alpha is drawn translucently over the whole screen, letterbox included, so the world stays visible but darker behind the canvas. #rrggbb still hides the world.

  • How: the full-screen colour table is now RGBA. Everything except a backdrop stays opaque, and the text vertex shader passes the alpha through.
  • Minimum alpha: 1a, because the text fragment shader discards fragments below 0.1 alpha. Lower values are a build error.
  • Previews fill with the translucent colour.
  • Storefront: uses #05080f99 behind its original glass panes.
  • Limitation: translucent world layers drawn after the canvas, such as water, stained glass and some particles, can be hidden behind a dimming backdrop instead of dimmed. A resource pack can't change that draw order. This is documented in AUTHORING.md.

Right clicks no longer reach the held item. The session now cancels ClientUseItemPacket and ClientPlayerBlockPlacementPacket. It acknowledges each cancelled packet's sequence and resyncs the inventory, so the client rolls back predicted blocks and off-hand use while the hotbar stays blank.

  • Before: a right click that missed the client-only interaction entity was handled by the server against the item the server's player really holds. In the example that's the shop emerald, so the inventory shop opened over the full-screen window.

Checks

  • Focused window-core full-screen tests pass, including a new boundary test for the minimum alpha.
  • MinestomFullscreenTest passes.
  • Golden hashes are refreshed and fmt-check passes.
  • The storefront scenario passes in a real 26.2 client at 1920×1080 and 1280×724.

oglassdev and others added 2 commits October 16, 2026 12:34
A backdrop with an alpha draws translucently over the world, letterbox included, so the canvas can stand out without hiding it. The storefront uses one. The session also cancels item-use and block-placement packets, so a right click that misses the interaction entity no longer uses the item the server's player holds.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Acknowledges the sequence of a cancelled use or placement so the client rolls back any block it placed, and resyncs the inventory for a spent off-hand item. Also rejects a non-ASCII backdrop instead of panicking, and documents that a dimming backdrop can hide later translucent world layers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant