feat: rewrite to cpp + refactor into files

This commit is contained in:
2026-02-11 19:56:47 +01:00
parent 40f6b874cf
commit a8b73927d8
7 changed files with 377 additions and 445 deletions

45
src/shader.cpp Normal file
View File

@@ -0,0 +1,45 @@
#include <stdio.h>
#include <stdlib.h>
#include "shader.h"
GLuint compile_shader(GLenum type, const char *src) {
GLuint shader = glCreateShader(type);
glShaderSource(shader, 1, &src, NULL);
glCompileShader(shader);
GLint ok;
glGetShaderiv(shader, GL_COMPILE_STATUS, &ok);
if (!ok) {
char log[512];
glGetShaderInfoLog(shader, sizeof(log), NULL, log);
fprintf(stderr, "shader compile error: %s\n", log);
exit(1);
}
return shader;
}
GLuint create_program(const char *vs_src, const char *fs_src) {
GLuint vs = compile_shader(GL_VERTEX_SHADER, vs_src);
GLuint fs = compile_shader(GL_FRAGMENT_SHADER, fs_src);
GLuint prog = glCreateProgram();
glAttachShader(prog, vs);
glAttachShader(prog, fs);
glLinkProgram(prog);
GLint ok;
glGetProgramiv(prog, GL_LINK_STATUS, &ok);
if (!ok) {
char log[512];
glGetProgramInfoLog(prog, sizeof(log), NULL, log);
fprintf(stderr, "program link error: %s\n", log);
exit(1);
}
glDeleteShader(vs);
glDeleteShader(fs);
return prog;
}