diff --git a/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h b/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h index 85f3b74..22a7479 100644 --- a/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h +++ b/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h @@ -26,7 +26,7 @@ namespace Archimedes { void render(std::list> cmdList, int& w, int& h) { glViewport(0, 0, w, h); - + glClearColor(0.2, 0.2, 0.4, 1); glClear(GL_COLOR_BUFFER_BIT); for(auto f : cmdList) diff --git a/modules/Archimedes-Modules/TestTriangle/TestTriangle.cpp b/modules/Archimedes-Modules/TestTriangle/TestTriangle.cpp index 995428d..0c223e2 100644 --- a/modules/Archimedes-Modules/TestTriangle/TestTriangle.cpp +++ b/modules/Archimedes-Modules/TestTriangle/TestTriangle.cpp @@ -47,6 +47,7 @@ void TestTriangle::onLoad() { glBindVertexArray(vao); // 3. now draw the object glDrawArrays(GL_TRIANGLES, 0, 3); + glBindVertexArray(0); }); rcmd_it = --wm->getRenderer()->getCmdList().end()++; @@ -63,16 +64,40 @@ void TestTriangle::onLoad() { glShaderSource(vs, 1, &vertexShaderSource, NULL); glCompileShader(vs); + glGetShaderiv(vs, GL_COMPILE_STATUS, &success); + + if(!success) { + std::cout << "shader linking failed!" << std::endl; + std::abort(); + }; + + fs = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(fs, 1, &fragShaderSource, NULL); glCompileShader(fs); + glGetShaderiv(fs, GL_COMPILE_STATUS, &success); + + if(!success) { + std::cout << "shader linking failed!" << std::endl; + std::abort(); + }; + + program = glCreateProgram(); glAttachShader(program, vs); glAttachShader(program, fs); glLinkProgram(program); + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if(!success) { + std::cout << "shader linking failed!" << std::endl; + std::abort(); + }; + + glDeleteShader(vs); glDeleteShader(fs);