base
This commit is contained in:
+15
-13
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user