This commit is contained in:
2026-11-03 20:05:02 -05:00
parent 7b32ad674e
commit 95c79efe83
38 changed files with 1636 additions and 2561 deletions
+15 -13
View File
@@ -480,23 +480,25 @@ void RenderSystem::Render(Camera& camera)
}
// ---- GUI (always on top, no depth) ----
// In the order things were made, boxes and text mixed, so a menu made later covers the text of one under it.
// The shader only gets switched when the kind of element changes.
glDisable(GL_CULL_FACE);
PrepareBoxShader(camera);
int activeGuiShader = -1;
for (Renderable* r : renderables) {
if (r->shadertype == Renderable::BoxShader)
r->Render(*BoxShader);
}
const int type = r->shadertype;
if (type != Renderable::BoxShader && type != Renderable::ImageBoxShader && type != Renderable::TextShader)
continue;
PrepareImageBoxShader(camera);
for (Renderable* r : renderables) {
if (r->shadertype == Renderable::ImageBoxShader)
r->Render(*ImageBoxShader);
}
if (type != activeGuiShader) {
if (type == Renderable::BoxShader) PrepareBoxShader(camera);
else if (type == Renderable::ImageBoxShader) PrepareImageBoxShader(camera);
else PrepareTextShader(camera);
activeGuiShader = type;
}
PrepareTextShader(camera);
for (Renderable* r : renderables) {
if (r->shadertype == Renderable::TextShader)
r->Render(*Text2DShader);
if (type == Renderable::BoxShader) r->Render(*BoxShader);
else if (type == Renderable::ImageBoxShader) r->Render(*ImageBoxShader);
else r->Render(*Text2DShader);
}
glEnable(GL_CULL_FACE);