diff options
author | dec05eba <dec05eba@protonmail.com> | 2017-12-22 17:34:55 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-11-18 15:21:48 +0100 |
commit | b5f06b6c4cd07f3073897af32626b9b21a4d2ef8 (patch) | |
tree | 3ccfb3f7776730520ed28679652c8dec5c4c126d /src/RenderBackend/OpenGL/VertexShader.cpp | |
parent | bfd21732b35a3856b1f72c826816c2857710fcb3 (diff) |
Fix vertex and pixel shader
Remove pixel shader code from shader program
Diffstat (limited to 'src/RenderBackend/OpenGL/VertexShader.cpp')
-rw-r--r-- | src/RenderBackend/OpenGL/VertexShader.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/RenderBackend/OpenGL/VertexShader.cpp b/src/RenderBackend/OpenGL/VertexShader.cpp index 04bf863..1505ff4 100644 --- a/src/RenderBackend/OpenGL/VertexShader.cpp +++ b/src/RenderBackend/OpenGL/VertexShader.cpp @@ -1,6 +1,7 @@ #include "../../../include/RenderBackend/OpenGL/VertexShader.hpp" #include "../../../include/RenderBackend/OpenGL/CommonShader.hpp" #include "../../../include/RenderBackend/OpenGL/opengl.hpp" +#include "../../../include/RenderBackend/OpenGL/CompiledShader.hpp" using namespace std; @@ -106,4 +107,26 @@ namespace amalgine { body += code; } + + Result<CompiledVertexShader*> VertexShader::compile() + { + GLuint vertexShaderId = glCreateShader(GL_VERTEX_SHADER); + string verterShaderSource = build(); + const char *verterShaderSourcePtr = verterShaderSource.c_str(); + printf("Vertex shader:\n%s\n", verterShaderSourcePtr); + glShaderSource(vertexShaderId, 1, &verterShaderSourcePtr, NULL); + glCompileShader(vertexShaderId); + + GLint status; + glGetShaderiv(vertexShaderId, GL_COMPILE_STATUS, &status); + string compileLog = getShaderCompileLog((u32)vertexShaderId); + if(status == GL_TRUE) + { + if(!compileLog.empty()) + printf("Vertex shader compile log:\n%s", compileLog.c_str()); + return Result<CompiledVertexShader*>::Ok(new CompiledVertexShader(vertexShaderId)); + } + else + return Result<CompiledVertexShader*>::Err(compileLog); + } } |