aboutsummaryrefslogtreecommitdiff
path: root/shader.c
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2025-10-16 01:55:38 -0400
committerJack Jamison <jackqjamison@gmail.com>2025-10-16 01:59:35 -0400
commit234fb5416e3008544c7a1755d9e26d1d3d5a0549 (patch)
tree7f159d4d2039e9d14274c7c97649092648c229aa /shader.c
parentce56d992214dfe793186f614d1759cd2ba061ad4 (diff)
texture don't worky
Diffstat (limited to 'shader.c')
-rw-r--r--shader.c44
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;
+}