Added basic debug lines
This commit is contained in:
		| @@ -13,7 +13,8 @@ typedef int32_t meshindice_t; | ||||
|  | ||||
| namespace Dawn { | ||||
|   enum MeshDrawMode { | ||||
|     MESH_DRAW_MODE_TRIANGLES = GL_TRIANGLES | ||||
|     MESH_DRAW_MODE_TRIANGLES = GL_TRIANGLES, | ||||
|     MESH_DRAW_MODE_LINES = GL_LINES | ||||
|   }; | ||||
|  | ||||
|   class Mesh { | ||||
|   | ||||
| @@ -1,45 +1,47 @@ | ||||
| // 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 ShaderPassItem> SimpleTexturedShader::getPassItems( | ||||
|   Mesh *mesh, | ||||
|   Material *material, | ||||
|   Camera *camera | ||||
| ) { | ||||
|   SimpleTexturedMaterial *simpleMaterial = dynamic_cast<SimpleTexturedMaterial*>(material); | ||||
|   assertNotNull(simpleMaterial); | ||||
|  | ||||
|   struct ShaderPassItem onlyPass; | ||||
|   onlyPass.mesh = mesh; | ||||
|   onlyPass.shaderProgram = &program; | ||||
|   onlyPass.colorValues[program.paramColor] = simpleMaterial->color; | ||||
|   onlyPass.matrixValues[program.paramModel] = material->transform->getWorldTransform(); | ||||
|   onlyPass.matrixValues[program.paramView] = camera->transform->getWorldTransform(); | ||||
|   onlyPass.matrixValues[program.paramProjection] = camera->projection; | ||||
|   onlyPass.renderFlags = ( | ||||
|     RENDER_MANAGER_RENDER_FLAG_BLEND | | ||||
|     RENDER_MANAGER_RENDER_FLAG_DEPTH_TEST | ||||
|   ); | ||||
|  | ||||
|   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 ShaderPassItem> passes; | ||||
|   passes.push_back(onlyPass); | ||||
|   return passes; | ||||
| // Copyright (c) 2023 Dominic Masters | ||||
| //  | ||||
| // This software is released under the MIT License. | ||||
| // https://opensource.org/licenses/MIT | ||||
|  | ||||
| #include "SimpleTexturedShader.hpp" | ||||
| #include "scene/components/display/MeshRenderer.hpp" | ||||
| #include "scene/components/display/Camera.hpp" | ||||
|  | ||||
| using namespace Dawn; | ||||
|  | ||||
| void SimpleTexturedShader::compile() { | ||||
|   this->program.compile(); | ||||
| } | ||||
|  | ||||
| std::vector<struct ShaderPassItem> SimpleTexturedShader::getPassItems( | ||||
|   Mesh *mesh, | ||||
|   Material *material, | ||||
|   Camera *camera | ||||
| ) { | ||||
|   SimpleTexturedMaterial *simpleMaterial = dynamic_cast<SimpleTexturedMaterial*>(material); | ||||
|   assertNotNull(simpleMaterial); | ||||
|  | ||||
|   struct ShaderPassItem onlyPass; | ||||
|   onlyPass.mesh = mesh; | ||||
|   onlyPass.shaderProgram = &program; | ||||
|   onlyPass.colorValues[program.paramColor] = simpleMaterial->color; | ||||
|   onlyPass.matrixValues[program.paramModel] = material->transform->getWorldTransform(); | ||||
|   onlyPass.matrixValues[program.paramView] = camera->transform->getWorldTransform(); | ||||
|   onlyPass.matrixValues[program.paramProjection] = camera->projection; | ||||
|   onlyPass.renderFlags = ( | ||||
|     RENDER_MANAGER_RENDER_FLAG_BLEND | | ||||
|     RENDER_MANAGER_RENDER_FLAG_DEPTH_TEST | ||||
|   ); | ||||
|  | ||||
|   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 ShaderPassItem> passes; | ||||
|   passes.push_back(onlyPass); | ||||
|   return passes; | ||||
| } | ||||
| @@ -10,10 +10,9 @@ | ||||
|  | ||||
| namespace Dawn { | ||||
|   class SimpleTexturedShader : public Shader { | ||||
|     protected: | ||||
|     public: | ||||
|       SimpleTexturedShaderProgram program; | ||||
|  | ||||
|     public: | ||||
|       void compile() override; | ||||
|  | ||||
|       std::vector<struct ShaderPassItem> getPassItems( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user