diff options
| author | Jack Jamison <jackqjamison@gmail.com> | 2025-10-16 01:55:38 -0400 |
|---|---|---|
| committer | Jack Jamison <jackqjamison@gmail.com> | 2025-10-16 01:59:35 -0400 |
| commit | 234fb5416e3008544c7a1755d9e26d1d3d5a0549 (patch) | |
| tree | 7f159d4d2039e9d14274c7c97649092648c229aa /shader.c | |
| parent | ce56d992214dfe793186f614d1759cd2ba061ad4 (diff) | |
texture don't worky
Diffstat (limited to 'shader.c')
| -rw-r--r-- | shader.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/shader.c b/shader.c new file mode 100644 index 0000000..8cc3926 --- /dev/null +++ b/shader.c @@ -0,0 +1,44 @@ +#include "shader.h" + +#include <stdio.h> + +GLuint createShader(const char *vertexCode, const char *fragmentCode) { + GLuint vertex, fragment; + int success; + char infoLog[512]; + + vertex = glCreateShader(GL_VERTEX_SHADER); + glShaderSource(vertex, 1, &vertexCode, NULL); + glCompileShader(vertex); + + glGetShaderiv(vertex, GL_COMPILE_STATUS, &success); + if (!success) { + glGetShaderInfoLog(vertex, 512, NULL, infoLog); + printf("ERROR: Failed to compile vertex shader: %s\n", infoLog); + } + + fragment = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fragment, 1, &fragmentCode, NULL); + glCompileShader(fragment); + + glGetShaderiv(fragment, GL_COMPILE_STATUS, &success); + if (!success) { + glGetShaderInfoLog(fragment, 512, NULL, infoLog); + printf("ERROR: Failed to compile fragment shader: %s\n", infoLog); + } + + GLuint ShaderProgram = glCreateProgram(); + glAttachShader(ShaderProgram, vertex); + glAttachShader(ShaderProgram, fragment); + glLinkProgram(ShaderProgram); + + glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &success); + if (!success) { + printf("Failed to link shaders\n"); + } + + glDeleteShader(vertex); + glDeleteShader(fragment); + + return ShaderProgram; +} |
