Minor refactoring
This commit is contained in:
@@ -6,26 +6,27 @@
|
||||
|
||||
#include "LogUtils.hpp"
|
||||
|
||||
namespace ugly {
|
||||
|
||||
ugly::ShaderProgramBuilder::ShaderProgramBuilder():
|
||||
ShaderProgramBuilder::ShaderProgramBuilder():
|
||||
mProgram{glCreateProgram()} {}
|
||||
|
||||
|
||||
ugly::ShaderProgramBuilder::~ShaderProgramBuilder() {
|
||||
ShaderProgramBuilder::~ShaderProgramBuilder() {
|
||||
if(mProgram != 0) {
|
||||
glDeleteProgram(mProgram);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ugly::ShaderProgramBuilder::reset() {
|
||||
void ShaderProgramBuilder::reset() {
|
||||
using namespace std;
|
||||
ShaderProgramBuilder b;
|
||||
swap(*this, b);
|
||||
}
|
||||
|
||||
|
||||
ugly::ShaderProgramBuilder &ugly::ShaderProgramBuilder::attachFromMemory(GLenum type, const GLchar *string, GLint length) {
|
||||
ShaderProgramBuilder &ShaderProgramBuilder::attachFromMemory(GLenum type, const GLchar *string, GLint length) {
|
||||
auto shader = glCreateShader(type);
|
||||
glShaderSource(shader, 1, &string, length != 0 ? &length : NULL);
|
||||
glCompileShader(shader);
|
||||
@@ -36,7 +37,7 @@ ugly::ShaderProgramBuilder &ugly::ShaderProgramBuilder::attachFromMemory(GLenum
|
||||
char buf[512];
|
||||
glGetShaderInfoLog(shader, 512, NULL, buf);
|
||||
glDeleteShader(shader);
|
||||
ugly::log("failed to compile shader:\n\t{}", buf);
|
||||
log("failed to compile shader:\n\t{}", buf);
|
||||
}
|
||||
|
||||
glAttachShader(mProgram, shader);
|
||||
@@ -45,14 +46,14 @@ ugly::ShaderProgramBuilder &ugly::ShaderProgramBuilder::attachFromMemory(GLenum
|
||||
}
|
||||
|
||||
|
||||
ugly::ShaderProgramBuilder &ugly::ShaderProgramBuilder::attachFromFile(GLenum type, const char *filename) {
|
||||
ShaderProgramBuilder &ShaderProgramBuilder::attachFromFile(GLenum type, const char *filename) {
|
||||
auto file = std::filebuf{};
|
||||
auto ss = std::ostringstream{};
|
||||
|
||||
ugly::log("loading shader from file {}", filename);
|
||||
log("loading shader from file {}", filename);
|
||||
file.open(filename, std::ios_base::in);
|
||||
if(!file.is_open()) {
|
||||
ugly::log("couldn't open file {}", filename);
|
||||
log("couldn't open file {}", filename);
|
||||
}
|
||||
|
||||
ss << &file;
|
||||
@@ -60,7 +61,7 @@ ugly::ShaderProgramBuilder &ugly::ShaderProgramBuilder::attachFromFile(GLenum ty
|
||||
}
|
||||
|
||||
|
||||
GLuint ugly::ShaderProgramBuilder::link() {
|
||||
GLuint ShaderProgramBuilder::link() {
|
||||
glLinkProgram(mProgram);
|
||||
|
||||
GLint status;
|
||||
@@ -68,7 +69,7 @@ GLuint ugly::ShaderProgramBuilder::link() {
|
||||
if(status != GL_TRUE) {
|
||||
char buf[512];
|
||||
glGetProgramInfoLog(mProgram, 512, NULL, buf);
|
||||
ugly::log("failed to link program:\n\t{}", buf);
|
||||
log("failed to link program:\n\t{}", buf);
|
||||
}
|
||||
|
||||
auto result = mProgram;
|
||||
@@ -76,3 +77,5 @@ GLuint ugly::ShaderProgramBuilder::link() {
|
||||
reset();
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user