some effc++ fixes

This commit is contained in:
2015-01-23 15:43:06 +01:00
parent 701ccce857
commit 05bf47c678
5 changed files with 34 additions and 19 deletions

View File

@@ -34,8 +34,7 @@ public:
Shader() : _shaderID(0) {
}
Shader(std::string const& program, GLenum type) {
_shaderID = glCreateShader(type);
Shader(std::string const& program, GLenum type) : _shaderID(glCreateShader(type)) {
const char* const arr[] = {program.c_str()};
glShaderSource(_shaderID, 1, arr, NULL);
glCompileShader(_shaderID);
@@ -62,12 +61,11 @@ public:
glDeleteShader(_shaderID);
}
protected:
unsigned getID() const {
return _shaderID;
}
friend class Program;
protected:
unsigned int _shaderID;
};
@@ -78,7 +76,7 @@ public:
VertexShader(std::string const& program) : Shader(program, GL_VERTEX_SHADER) {
}
virtual ~VertexShader() {
~VertexShader() override {
}
};
@@ -102,9 +100,8 @@ public:
class Program {
public:
Program(VertexShader& vertex, FragmentShader& frag) : _geom(nullptr), _vertex(vertex), _frag(frag) {
_progID = glCreateProgram();
Program(VertexShader& vertex, FragmentShader& frag)
: _geom(nullptr), _vertex(vertex), _frag(frag), _progID(glCreateProgram()) {
glAttachShader(_progID, _vertex.getID());
glAttachShader(_progID, _frag.getID());
@@ -131,9 +128,8 @@ public:
glDetachShader(_progID, _frag.getID());
}
Program(GeometryShader& geom, VertexShader& vertex, FragmentShader& frag) : _geom(&geom), _vertex(vertex), _frag(frag) {
_progID = glCreateProgram();
Program(GeometryShader& geom, VertexShader& vertex, FragmentShader& frag)
: _geom(&geom), _vertex(vertex), _frag(frag), _progID(glCreateProgram()) {
glAttachShader(_progID, _geom->getID());
glAttachShader(_progID, _vertex.getID());
glAttachShader(_progID, _frag.getID());