Graphics/DefaultRenderer2D: use GfxDriver/ShaderProgram instead of Graphics/ShaderProgram
This commit is contained in:
parent
9bea188686
commit
82e08d0785
2 changed files with 12 additions and 9 deletions
|
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
namespace sp {
|
namespace sp {
|
||||||
|
|
||||||
|
class ShaderProgram;
|
||||||
|
|
||||||
class DefaultRenderer2D : public Renderer2D
|
class DefaultRenderer2D : public Renderer2D
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
|
|
@ -21,7 +23,7 @@ protected :
|
||||||
|
|
||||||
std::vector<const Renderable2D*> m_queue;
|
std::vector<const Renderable2D*> m_queue;
|
||||||
|
|
||||||
ShaderProgram m_shader;
|
ShaderProgram* m_shader;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,20 @@
|
||||||
#include <Spectre/Graphics/Texture.h>
|
#include <Spectre/Graphics/Texture.h>
|
||||||
#include <Spectre/Graphics/Renderable.h>
|
#include <Spectre/Graphics/Renderable.h>
|
||||||
#include <Spectre/Graphics/DefaultRenderer2D.h>
|
#include <Spectre/Graphics/DefaultRenderer2D.h>
|
||||||
|
#include <GfxDriver/OpenGL/OpenGLShaderProgram.h>
|
||||||
#include <Graphics/GL/gl.h>
|
#include <Graphics/GL/gl.h>
|
||||||
|
|
||||||
namespace sp {
|
namespace sp {
|
||||||
|
|
||||||
DefaultRenderer2D::DefaultRenderer2D()
|
DefaultRenderer2D::DefaultRenderer2D()
|
||||||
{
|
{
|
||||||
m_shader.create();
|
m_shader = new OpenGLShaderProgram();
|
||||||
if (!m_shader.loadFromFile("assets/shaders/standard.shader.glsl")) {
|
if (!m_shader->loadFromFile("assets/shaders/standard.shader.glsl")) {
|
||||||
std::cout << "Failed to load shader: " << m_shader.getLastError() << std::endl;
|
std::cout << "Failed to load shader: " << m_shader->getLastError() << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_shader.link()) {
|
if (!m_shader->link()) {
|
||||||
std::cout << "Failed to link shader: " << m_shader.getLastError() << std::endl;
|
std::cout << "Failed to link shader: " << m_shader->getLastError() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -33,7 +34,7 @@ void DefaultRenderer2D::render()
|
||||||
viewMatrix = Matrix4f::Identity;
|
viewMatrix = Matrix4f::Identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_shader.enable();
|
m_shader->enable();
|
||||||
|
|
||||||
glEnableVertexAttribArray(VertexAttribPosition);
|
glEnableVertexAttribArray(VertexAttribPosition);
|
||||||
glEnableVertexAttribArray(VertexAttribColor0);
|
glEnableVertexAttribArray(VertexAttribColor0);
|
||||||
|
|
@ -48,7 +49,7 @@ void DefaultRenderer2D::render()
|
||||||
const Texture *tex = obj->getTexture();
|
const Texture *tex = obj->getTexture();
|
||||||
|
|
||||||
Matrix4f modelViewMatrix = viewMatrix * obj->getTransform().getMatrix();
|
Matrix4f modelViewMatrix = viewMatrix * obj->getTransform().getMatrix();
|
||||||
m_shader.setMVPMatrix(modelViewMatrix);
|
m_shader->setMVPMatrix(modelViewMatrix);
|
||||||
|
|
||||||
glVertexAttribPointer(VertexAttribPosition, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), data + 0);
|
glVertexAttribPointer(VertexAttribPosition, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), data + 0);
|
||||||
glVertexAttribPointer(VertexAttribColor0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), data + 8);
|
glVertexAttribPointer(VertexAttribColor0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), data + 8);
|
||||||
|
|
@ -69,7 +70,7 @@ void DefaultRenderer2D::render()
|
||||||
glDisableVertexAttribArray(VertexAttribColor0);
|
glDisableVertexAttribArray(VertexAttribColor0);
|
||||||
glDisableVertexAttribArray(VertexAttribTexCoord0);
|
glDisableVertexAttribArray(VertexAttribTexCoord0);
|
||||||
|
|
||||||
m_shader.disable();
|
m_shader->disable();
|
||||||
m_queue.clear();
|
m_queue.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue