diff options
Diffstat (limited to 'src/shader/wrap')
-rw-r--r-- | src/shader/wrap/graphic_shader.cc | 10 | ||||
-rw-r--r-- | src/shader/wrap/graphic_shader.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/shader/wrap/graphic_shader.cc b/src/shader/wrap/graphic_shader.cc index 0ed37ff..c891730 100644 --- a/src/shader/wrap/graphic_shader.cc +++ b/src/shader/wrap/graphic_shader.cc @@ -15,6 +15,16 @@ GraphicShader::Guard GraphicShader::use() const { return Guard(_id); } +GraphicShader::GraphicShader(const std::string& vertex, + const std::string& geometry, + const std::string fragment): + _id(glCreateProgram()) { + glAttachShader(_id, util::compileShader(vertex, GL_VERTEX_SHADER)); + glAttachShader(_id, util::compileShader(geometry, GL_GEOMETRY_SHADER)); + glAttachShader(_id, util::compileShader(fragment, GL_FRAGMENT_SHADER)); + glLinkProgram(_id); +} + GraphicShader::GraphicShader(const std::string& vertex, const std::string fragment): _id(glCreateProgram()) { glAttachShader(_id, util::compileShader(vertex, GL_VERTEX_SHADER)); diff --git a/src/shader/wrap/graphic_shader.h b/src/shader/wrap/graphic_shader.h index 25a5efb..dcae6db 100644 --- a/src/shader/wrap/graphic_shader.h +++ b/src/shader/wrap/graphic_shader.h @@ -20,6 +20,7 @@ public: Guard use() const; + GraphicShader(const std::string& vertex, const std::string& geometry, const std::string fragment); GraphicShader(const std::string& vertex, const std::string fragment); ~GraphicShader(); |