Added the ability to use renderdoc and warn when uniforms unavailable
This commit is contained in:
parent
1e5544ce1f
commit
40f12dd510
5 changed files with 40 additions and 17 deletions
|
|
@ -122,6 +122,7 @@ void main()
|
||||||
color = pow(color, vec3(1.0/2.2));
|
color = pow(color, vec3(1.0/2.2));
|
||||||
|
|
||||||
//FragColor = texture(texture_diffuse1, ourTexCoord);
|
//FragColor = texture(texture_diffuse1, ourTexCoord);
|
||||||
//FragColor = texture(texture_metalness1, ourTexCoord);
|
FragColor = texture(texture_metalness1, ourTexCoord);
|
||||||
FragColor = texture(texture_diffuse1, ourTexCoord) * vec4(color, 0.0);
|
//FragColor = texture(texture_diffuse1, ourTexCoord) * vec4(color, 0.0);
|
||||||
|
//FragColor = vec4(CameraPos,1.0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
#include "Error.h"
|
#include "Error.h"
|
||||||
|
|
||||||
Error::Error(std::string location) { object = location; }
|
Error::Error(std::string location) { object = location; }
|
||||||
void Error::crash(std::string msg) {
|
const void Error::crash(std::string msg) const {
|
||||||
log("Error: " + msg);
|
log("Error: " + msg);
|
||||||
throw std::string(object + ": \n" + msg);
|
throw std::string(object + ": \n" + msg);
|
||||||
}
|
}
|
||||||
void Error::crash(std::string reason, std::string msg) {
|
const void Error::crash(std::string reason, std::string msg) const {
|
||||||
log("Error: " + reason + ": \n" + msg);
|
log("Error: " + reason + ": \n" + msg);
|
||||||
throw std::string(object + ": \n" + reason + ": \n" + msg);
|
throw std::string(object + ": \n" + reason + ": \n" + msg);
|
||||||
}
|
}
|
||||||
void Error::warn(std::string msg) {
|
const void Error::warn(std::string msg) const {
|
||||||
log("Warining: " + msg);
|
log("Warining: " + msg);
|
||||||
// throw object + ": " + msg;
|
// throw object + ": " + msg;
|
||||||
}
|
}
|
||||||
void Error::log(std::string msg) {
|
const void Error::log(std::string msg) const {
|
||||||
std::cout << object << ": \n" << msg << std::endl;
|
std::cout << object << ": \n" << msg << std::endl;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ public:
|
||||||
Error(std::string location);
|
Error(std::string location);
|
||||||
|
|
||||||
// TODO: make the crash break game loop
|
// TODO: make the crash break game loop
|
||||||
void crash(std::string msg);
|
const void crash(std::string msg) const;
|
||||||
void crash(std::string reason, std::string msg);
|
const void crash(std::string reason, std::string msg) const;
|
||||||
void warn(std::string msg);
|
const void warn(std::string msg) const;
|
||||||
// TODO: write log issues to a file rather than throw
|
// TODO: write log issues to a file rather than throw
|
||||||
void log(std::string msg);
|
const void log(std::string msg) const;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -80,19 +80,37 @@ ShaderLoader::ShaderLoader(const char *vertexPath, const char *fragmentPath) {
|
||||||
|
|
||||||
void ShaderLoader::use() { glUseProgram(ID); }
|
void ShaderLoader::use() { glUseProgram(ID); }
|
||||||
void ShaderLoader::setBool(const std::string &name, bool value) const {
|
void ShaderLoader::setBool(const std::string &name, bool value) const {
|
||||||
glUniform1i(glGetUniformLocation(ID, name.c_str()), (int)value);
|
int uniformLocation = glGetUniformLocation(ID, name.c_str());
|
||||||
|
glUniform1i(uniformLocation, (int)value);
|
||||||
|
|
||||||
|
if (uniformLocation == -1)
|
||||||
|
error.warn("Uniform location " + name + " not found");
|
||||||
}
|
}
|
||||||
void ShaderLoader::setInt(const std::string &name, int value) const {
|
void ShaderLoader::setInt(const std::string &name, int value) const {
|
||||||
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
|
int uniformLocation = glGetUniformLocation(ID, name.c_str());
|
||||||
|
glUniform1i(uniformLocation, value);
|
||||||
|
|
||||||
|
if (uniformLocation == -1)
|
||||||
|
error.warn("Uniform location " + name + " not found");
|
||||||
}
|
}
|
||||||
void ShaderLoader::setFloat(const std::string &name, float value) const {
|
void ShaderLoader::setFloat(const std::string &name, float value) const {
|
||||||
glUniform1f(glGetUniformLocation(ID, name.c_str()), value);
|
int uniformLocation = glGetUniformLocation(ID, name.c_str());
|
||||||
|
glUniform1f(uniformLocation, value);
|
||||||
|
|
||||||
|
if (uniformLocation == -1)
|
||||||
|
error.warn("Uniform location " + name + " not found");
|
||||||
}
|
}
|
||||||
void ShaderLoader::setMat4(const std::string &name, glm::mat4 value) const {
|
void ShaderLoader::setMat4(const std::string &name, glm::mat4 value) const {
|
||||||
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE,
|
int uniformLocation = glGetUniformLocation(ID, name.c_str());
|
||||||
&value[0][0]);
|
glUniformMatrix4fv(uniformLocation, 1, GL_FALSE, &value[0][0]);
|
||||||
|
|
||||||
|
if (uniformLocation == -1)
|
||||||
|
error.warn("Uniform location " + name + " not found");
|
||||||
}
|
}
|
||||||
void ShaderLoader::setVec3(const std::string &name, glm::vec3 value) const {
|
void ShaderLoader::setVec3(const std::string &name, glm::vec3 value) const {
|
||||||
glUniform3fv(glGetUniformLocation(ID, name.c_str()), 1,
|
int uniformLocation = glGetUniformLocation(ID, name.c_str());
|
||||||
glm::value_ptr(value));
|
glUniform3fv(uniformLocation, 1, glm::value_ptr(value));
|
||||||
|
|
||||||
|
if (uniformLocation == -1)
|
||||||
|
error.warn("Uniform location " + name + " not found");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,10 @@ int main(int argc, char **argv) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set openGL version so RenderDoc works
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
|
||||||
|
|
||||||
// Create glContext
|
// Create glContext
|
||||||
SDL_GLContext glContext = SDL_GL_CreateContext(window);
|
SDL_GLContext glContext = SDL_GL_CreateContext(window);
|
||||||
if (!glContext) {
|
if (!glContext) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue