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