From a4214805d1edfd79e4ee8b587e44faf537ec507c Mon Sep 17 00:00:00 2001 From: Marvelco Date: Fri, 6 Mar 2026 23:35:30 +0200 Subject: [PATCH] Fixed stained glass and glass pane not rendering the water and held item transparency for stained glass and pane (#748) * fixed stained glass and glass pane not rendering the water * Fixed held item transparency for stained glass and pane --- Minecraft.Client/GameRenderer.cpp | 5 +++++ Minecraft.Client/LevelRenderer.cpp | 7 +++++++ Minecraft.World/StainedGlassBlock.cpp | 2 +- Minecraft.World/StainedGlassPaneBlock.cpp | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Minecraft.Client/GameRenderer.cpp b/Minecraft.Client/GameRenderer.cpp index f51a24d8..3bf6cb0c 100644 --- a/Minecraft.Client/GameRenderer.cpp +++ b/Minecraft.Client/GameRenderer.cpp @@ -745,7 +745,12 @@ void GameRenderer::renderItemInHand(float a, int eye) { turnOnLightLayer(a); PIXBeginNamedEvent(0,"Item in hand render"); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDepthMask(false); itemInHandRenderer->render(a); + glDepthMask(true); + glDisable(GL_BLEND); PIXEndNamedEvent(); turnOffLightLayer(a); } diff --git a/Minecraft.Client/LevelRenderer.cpp b/Minecraft.Client/LevelRenderer.cpp index d9510a53..1648185d 100644 --- a/Minecraft.Client/LevelRenderer.cpp +++ b/Minecraft.Client/LevelRenderer.cpp @@ -767,6 +767,9 @@ int LevelRenderer::renderChunks(int from, int to, int layer, double alpha) glPushMatrix(); glTranslatef((float)-xOff, (float)-yOff, (float)-zOff); + if (layer == 1) + glDepthMask(false); + #ifdef __PSVITA__ // AP - also set the camera position so we can work out if a chunk is fogged or not RenderManager.SetCameraPosition((float)-xOff, (float)-yOff, (float)-zOff); @@ -844,6 +847,10 @@ int LevelRenderer::renderChunks(int from, int to, int layer, double alpha) #endif // __PS3__ glPopMatrix(); + + if (layer == 1) + glDepthMask(true); + mc->gameRenderer->turnOffLightLayer(alpha); // 4J - brought forward from 1.8.2 #else diff --git a/Minecraft.World/StainedGlassBlock.cpp b/Minecraft.World/StainedGlassBlock.cpp index 3fae3d46..efdeef52 100644 --- a/Minecraft.World/StainedGlassBlock.cpp +++ b/Minecraft.World/StainedGlassBlock.cpp @@ -5,7 +5,7 @@ Icon *StainedGlassBlock::ICONS[StainedGlassBlock::ICONS_LENGTH]; -StainedGlassBlock::StainedGlassBlock(int id, Material *material) : HalfTransparentTile(id, L"glass", material, false) +StainedGlassBlock::StainedGlassBlock(int id, Material *material) : HalfTransparentTile(id, L"glass", material, true) { } diff --git a/Minecraft.World/StainedGlassPaneBlock.cpp b/Minecraft.World/StainedGlassPaneBlock.cpp index 086d8ae5..7d7dca1a 100644 --- a/Minecraft.World/StainedGlassPaneBlock.cpp +++ b/Minecraft.World/StainedGlassPaneBlock.cpp @@ -6,7 +6,7 @@ Icon *StainedGlassPaneBlock::ICONS[StainedGlassPaneBlock::ICONS_COUNT]; Icon *StainedGlassPaneBlock::EDGE_ICONS[StainedGlassPaneBlock::ICONS_COUNT]; -StainedGlassPaneBlock::StainedGlassPaneBlock(int id) : ThinFenceTile(id, L"glass", L"glass_pane_top", Material::glass, false) +StainedGlassPaneBlock::StainedGlassPaneBlock(int id) : ThinFenceTile(id, L"glass", L"glass_pane_top", Material::glass, true) { }