Stuff I've fixed so far.
This commit is contained in:
		| @@ -14,13 +14,12 @@ RenderManager::RenderManager(DawnGame *game) : | ||||
|   backBuffer(*this), | ||||
|   renderPipeline(this) | ||||
| { | ||||
|   this->simpleShader = new SimpleTexturedShader(); | ||||
|   this->uiShader = new UIShader(); | ||||
| } | ||||
|  | ||||
| void RenderManager::init() { | ||||
|   this->renderPipeline.init(); | ||||
|   this->simpleShader->compile(); | ||||
|   this->simpleShader.compile(); | ||||
|   this->uiShader->compile(); | ||||
|  | ||||
|   // Prepare the initial values | ||||
| @@ -38,10 +37,6 @@ RenderPipeline * RenderManager::getRenderPipeline() { | ||||
|   return &this->renderPipeline; | ||||
| } | ||||
|  | ||||
| Shader * RenderManager::getDefaultShader() { | ||||
|   return this->simpleShader; | ||||
| } | ||||
|  | ||||
| UIShader * RenderManager::getUIShader() { | ||||
|   return this->uiShader; | ||||
| } | ||||
| @@ -67,6 +62,5 @@ void RenderManager::update() { | ||||
| } | ||||
|  | ||||
| RenderManager::~RenderManager() { | ||||
|   delete this->simpleShader; | ||||
|   delete this->uiShader; | ||||
| } | ||||
| @@ -16,7 +16,7 @@ namespace Dawn { | ||||
|  | ||||
|     public: | ||||
|       BackBufferRenderTarget backBuffer; | ||||
|       SimpleTexturedShader *simpleShader; | ||||
|       SimpleTexturedShader simpleShader; | ||||
|       UIShader *uiShader; | ||||
|  | ||||
|       /** | ||||
| @@ -26,7 +26,6 @@ namespace Dawn { | ||||
|        | ||||
|       RenderTarget * getBackBuffer() override; | ||||
|       RenderPipeline * getRenderPipeline() override; | ||||
|       Shader * getDefaultShader() override; | ||||
|       UIShader * getUIShader() override; | ||||
|       void setRenderFlags(renderflag_t renderFlags) override; | ||||
|       void init() override; | ||||
|   | ||||
							
								
								
									
										43
									
								
								src/dawnopengl/display/shader/SimpleTexturedShader.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/dawnopengl/display/shader/SimpleTexturedShader.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| // Copyright (c) 2023 Dominic Masters | ||||
| //  | ||||
| // This software is released under the MIT License. | ||||
| // https://opensource.org/licenses/MIT | ||||
|  | ||||
| #include "SimpleTexturedShader.hpp" | ||||
|  | ||||
| using namespace Dawn; | ||||
|  | ||||
| void SimpleTexturedShader::compile() { | ||||
|   this->program.compile(); | ||||
| } | ||||
|  | ||||
| std::vector<struct ShaderPass> SimpleTexturedShader::getItemPasses( | ||||
|   MeshRenderer *mesh, Material *material | ||||
| ) { | ||||
|   SimpleTexturedMaterial *simpleMaterial = dynamic_cast<SimpleTexturedMaterial*>(material); | ||||
|   assertNotNull(simpleMaterial); | ||||
|  | ||||
|   struct ShaderPass onlyPass; | ||||
|   onlyPass.shaderProgram = &program; | ||||
|   onlyPass.colorValues[program.paramColor] = simpleMaterial->color; | ||||
|   onlyPass.matrixValues[program.paramModel] = mesh->transform->getWorldTransform(); | ||||
|  | ||||
|   if(simpleMaterial->texture != nullptr) { | ||||
|     onlyPass.boolValues[program.paramHasTexture] = true; | ||||
|     onlyPass.textureSlots[0] = simpleMaterial->texture; | ||||
|     onlyPass.textureValues[program.paramTexture] = 0; | ||||
|   } else { | ||||
|     onlyPass.boolValues[program.paramHasTexture] = false; | ||||
|   } | ||||
|  | ||||
|   std::vector<struct ShaderPass> passes; | ||||
|   passes.push_back(onlyPass); | ||||
|   return passes; | ||||
| } | ||||
|  | ||||
| void SimpleTexturedShader::setGlobalParameters( | ||||
|   glm::mat4 cameraProjection, glm::mat4 cameraView | ||||
| ) { | ||||
|   this->program.setMatrix(this->program.paramProjection, cameraProjection); | ||||
|   this->program.setMatrix(this->program.paramView, cameraView); | ||||
| } | ||||
| @@ -6,6 +6,7 @@ | ||||
| #pragma once | ||||
| #include "display/shader/Shader.hpp" | ||||
| #include "SimpleTexturedShaderProgram.hpp" | ||||
| #include "scene/components/display/material/SimpleTexturedMaterial.hpp" | ||||
|  | ||||
| namespace Dawn { | ||||
|   class SimpleTexturedShader : public Shader { | ||||
| @@ -13,21 +14,14 @@ namespace Dawn { | ||||
|       SimpleTexturedShaderProgram program; | ||||
|  | ||||
|     public: | ||||
|       void compile() override { | ||||
|         this->program.compile(); | ||||
|       } | ||||
|       void compile() override; | ||||
|  | ||||
|       std::vector<struct ShaderPass> getItemPasses( | ||||
|         MeshRenderer *mesh, | ||||
|         Material *material | ||||
|       ) override { | ||||
|         return std::vector<struct ShaderPass>(); | ||||
|       } | ||||
|         MeshRenderer *mesh, Material *material | ||||
|       ) override; | ||||
|  | ||||
|       void setGlobalParameters( | ||||
|         glm::mat4 cameraProjection, | ||||
|         glm::mat4 cameraView | ||||
|       ) override { | ||||
|       } | ||||
|         glm::mat4 cameraProjection, glm::mat4 cameraView | ||||
|       ) override; | ||||
|   }; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user