strichmaennchen git · main
git clone https://git.christianimmanuel.de/games/strichmaennchen.gitwget https://git.christianimmanuel.de/games/strichmaennchen/archive/strichmaennchen.tar.gzrenderer.h raw
#ifndef RENDERER_H
#define RENDERER_H
#include <stdbool.h>
#include <SDL3/SDL.h>
#include "linalg.h"
#include "camera.h"
#include "mesh.h"
typedef struct Renderer {
SDL_Window *window;
SDL_GLContext gl_context;
int width;
int height;
GLuint shaderProgram;
GLuint shadowShader; // Added for shadow mapping
GLuint cubeVAO;
GLuint cubeVBO;
GLuint cubeEBO;
const char *vertexShaderSrc;
const char *fragmentShaderSrc;
GLuint shadowFramebuffer;
GLuint shadowMap; // Depth texture
int shadowMapWidth;
int shadowMapHeight;
Mat4 lightProjection; // Ortho matrix for light
Mat4 lightView; // View matrix from light's perspective
} Renderer;
Renderer* Renderer_create(int width, int height);
bool Renderer_init(Renderer* renderer, int width, int height);
void Renderer_resize(Renderer* renderer);
void Renderer_clear(float r, float g, float b, float a);
void Renderer_shutdown(Renderer* renderer);
void Renderer_drawMesh(Renderer* renderer, Mesh* mesh, Mat4 mvp);
#endif