Fixed renderer shaders. Derp.
This commit is contained in:
@@ -71,7 +71,8 @@ void Renderer::AddModelToDraw(Model* _model)
|
|||||||
|
|
||||||
void Renderer::LoadContent()
|
void Renderer::LoadContent()
|
||||||
{
|
{
|
||||||
m_ShaderProgram->AddShader(std::unique_ptr<Shader>(new VertexShader("Shaders/Vertex.glsl")));
|
m_ShaderProgram.AddShader(std::unique_ptr<Shader>(new VertexShader("Shaders/Vertex.glsl")));
|
||||||
m_ShaderProgram->AddShader(std::unique_ptr<Shader>(new FragmentShader("Shaders/Fragment.glsl")));
|
m_ShaderProgram.AddShader(std::unique_ptr<Shader>(new FragmentShader("Shaders/Fragment.glsl")));
|
||||||
m_ShaderProgram->Link();
|
m_ShaderProgram.Compile();
|
||||||
|
m_ShaderProgram.Link();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
class Renderer
|
class Renderer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
std::shared_ptr<ShaderProgram> m_ShaderProgram;
|
ShaderProgram m_ShaderProgram;
|
||||||
|
|
||||||
std::vector<Model*> ModelsToRender;
|
std::vector<Model*> ModelsToRender;
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ GLuint Shader::CompileShader(GLenum shaderType, std::string fileName)
|
|||||||
|
|
||||||
std::string shaderFile;
|
std::string shaderFile;
|
||||||
std::ifstream in(fileName, std::ios::in);
|
std::ifstream in(fileName, std::ios::in);
|
||||||
if(!in)
|
if (!in) {
|
||||||
{
|
|
||||||
LOG_ERROR("Error: Failed to open shader file \"%s\"", fileName.c_str());
|
LOG_ERROR("Error: Failed to open shader file \"%s\"", fileName.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -31,8 +30,7 @@ GLuint Shader::CompileShader(GLenum shaderType, std::string fileName)
|
|||||||
|
|
||||||
GLint compileStatus;
|
GLint compileStatus;
|
||||||
glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus);
|
glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus);
|
||||||
if(compileStatus != GL_TRUE)
|
if(compileStatus != GL_TRUE) {
|
||||||
{
|
|
||||||
LOG_ERROR("Shader compilation failed");
|
LOG_ERROR("Shader compilation failed");
|
||||||
GLsizei infoLogLength;
|
GLsizei infoLogLength;
|
||||||
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength);
|
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength);
|
||||||
@@ -55,8 +53,10 @@ Shader::Shader(GLenum shaderType, std::string fileName) : m_ShaderType(shaderTyp
|
|||||||
|
|
||||||
Shader::~Shader()
|
Shader::~Shader()
|
||||||
{
|
{
|
||||||
|
if (m_ShaderHandle != 0) {
|
||||||
glDeleteShader(m_ShaderHandle);
|
glDeleteShader(m_ShaderHandle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GLuint Shader::Compile()
|
GLuint Shader::Compile()
|
||||||
{
|
{
|
||||||
@@ -89,13 +89,6 @@ ShaderProgram::ShaderProgram()
|
|||||||
Initialize();
|
Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
ShaderProgram::ShaderProgram(std::string vertexShaderFile, std::string fragmentShaderFile)
|
|
||||||
{
|
|
||||||
AddShader(std::unique_ptr<Shader>(new VertexShader(vertexShaderFile)));
|
|
||||||
AddShader(std::unique_ptr<Shader>(new VertexShader(fragmentShaderFile)));
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
ShaderProgram::~ShaderProgram()
|
ShaderProgram::~ShaderProgram()
|
||||||
{
|
{
|
||||||
Unbind();
|
Unbind();
|
||||||
@@ -104,13 +97,16 @@ ShaderProgram::~ShaderProgram()
|
|||||||
|
|
||||||
void ShaderProgram::AddShader(std::unique_ptr<Shader> shader)
|
void ShaderProgram::AddShader(std::unique_ptr<Shader> shader)
|
||||||
{
|
{
|
||||||
if (!shader->IsCompiled()) {
|
m_Shaders.push_back(std::move(shader));
|
||||||
if (shader->Compile() == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Shaders.push_back(std::move(shader));
|
void ShaderProgram::Compile()
|
||||||
|
{
|
||||||
|
for (auto &shader : m_Shaders) {
|
||||||
|
if (!shader->IsCompiled()) {
|
||||||
|
shader->Compile();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GLuint ShaderProgram::Link()
|
GLuint ShaderProgram::Link()
|
||||||
|
|||||||
@@ -71,10 +71,9 @@ public:
|
|||||||
ShaderProgram();
|
ShaderProgram();
|
||||||
~ShaderProgram();
|
~ShaderProgram();
|
||||||
|
|
||||||
ShaderProgram(std::string vertexShaderFile, std::string fragmentShaderFile);
|
|
||||||
|
|
||||||
void AddShader(std::unique_ptr<Shader> shader);
|
void AddShader(std::unique_ptr<Shader> shader);
|
||||||
|
|
||||||
|
void Compile();
|
||||||
GLuint Link();
|
GLuint Link();
|
||||||
|
|
||||||
void Bind();
|
void Bind();
|
||||||
|
|||||||
@@ -7,8 +7,6 @@
|
|||||||
#include <glext.h>
|
#include <glext.h>
|
||||||
#include <SOIL.h>
|
#include <SOIL.h>
|
||||||
|
|
||||||
//#include "Renderer.h"
|
|
||||||
|
|
||||||
class Texture
|
class Texture
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
Reference in New Issue
Block a user