From 510f1bac9b71ba240d30bb5bc5df6501e70fafc9 Mon Sep 17 00:00:00 2001 From: DrNuget Date: Sun, 4 Jan 2026 22:12:24 +0200 Subject: Working 3D with .obj file loading --- src/shader.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/shader.c (limited to 'src/shader.c') diff --git a/src/shader.c b/src/shader.c new file mode 100644 index 0000000..022879e --- /dev/null +++ b/src/shader.c @@ -0,0 +1,39 @@ +#include "shader.h" +#include "includes.h" + +unsigned int loadShader(const char* filename, unsigned int shadertype) +{ + void* shader_source = SDL_LoadFile(filename, NULL); + unsigned int shader = glCreateShader(shadertype); + glShaderSource(shader, 1, (const char**)&shader_source, NULL); + glCompileShader(shader); + SDL_free(shader_source); + + int success; + + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + if (!success) { + printf("Couldn't compile shader\n"); + return 0; + } + + return shader; +} + +unsigned int shaderProgram(unsigned int vertex_shader, unsigned int fragment_shader) +{ + unsigned int shader_program; + shader_program = glCreateProgram(); + glAttachShader(shader_program, vertex_shader); + glAttachShader(shader_program, fragment_shader); + glLinkProgram(shader_program); + + int success; + glGetProgramiv(shader_program, GL_LINK_STATUS, &success); + if (!success) { + printf("Couldn't link shader program\n"); + return 0; + } + + return shader_program; +} -- cgit v1.2.3