Added IRenderable, removed shader programs and allow more nuanced control of render passes, UI items are now rendered same as other scene item components.

This commit is contained in:
2023-05-29 15:52:08 -07:00
parent 117262267c
commit 96dd33c6b8
30 changed files with 419 additions and 600 deletions

View File

@ -25,12 +25,15 @@ float_t UIImage::getContentHeight() {
return this->height;
}
std::vector<struct ShaderPassItem> UIImage::getPassItems(
glm::mat4 proj, glm::mat4 view
) {
std::vector<struct ShaderPassItem> UIImage::getRenderPasses() {
glm::mat4 view, proj;
auto canvas = this->getCanvas();
assertNotNull(canvas);
canvas->getProjectionAndView(&proj, &view);
struct ShaderPassItem item;
auto shader = &getGame()->renderManager.uiShader->program;
item.shaderProgram = shader;
auto shader = getGame()->renderManager.uiShader;
item.shader = shader;
item.colorValues[shader->paramColor] = this->color;
item.matrixValues[shader->paramProjection] = proj;
item.matrixValues[shader->paramView] = view;