X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fshader.cpp;h=c42e6fcaabc272f0c06f4ea4203cad6d1bea6102;hb=e1e349bb6035463529bc341c472987d229e1cdca;hp=985b96e5faf9981374f776bffe74fbb25d6a0430;hpb=918b4955c28fad1836a57ab3e9e033448144996c;p=blank.git diff --git a/src/shader.cpp b/src/shader.cpp index 985b96e..c42e6fc 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -1,6 +1,7 @@ #include "shader.hpp" #include +#include #include #include #include @@ -93,6 +94,19 @@ Program::~Program() { } +const Shader &Program::LoadShader(GLenum type, const GLchar *src) { + shaders.emplace_back(type); + Shader &shader = shaders.back(); + shader.Source(src); + shader.Compile(); + if (!shader.Compiled()) { + shader.Log(std::cerr); + throw std::runtime_error("compile shader"); + } + Attach(shader); + return shader; +} + void Program::Attach(Shader &shader) { shader.AttachToProgram(handle); }