173 const char* renderer,
char* buffer,
210 GLenum internal_format, GLint levels,
225 size_t offset_albedo,
226 size_t offset_metallic);
239 GLint polygon_mode[2];
Common OpenGL definitions, RAII helpers, and utilities.
void render_utils_get_gpu_identifier(char *buffer, size_t size)
Generates a filesystem-safe identifier for the current GPU.
Definition: render_utils.c:244
void render_utils_reset_texture_units(int start_unit, int end_unit, GLuint fallback_tex)
Resets a range of texture units to a safe state.
Definition: render_utils.c:50
GPUInfo render_utils_get_gpu_info(void)
Retrieves currently active GPU hardware and driver information.
Definition: render_utils.c:180
void render_utils_bind_texture_safe(GLenum unit, GLuint texture, GLuint fallback_tex)
Safely binds a texture to a specific unit, using a fallback if needed.
Definition: render_utils.c:39
void render_utils_setup_sphere_instance_attributes(GLsizei stride, size_t offset_albedo, size_t offset_metallic)
Sets up instance attributes for sphere rendering (Model, Albedo, PBR).
Definition: render_utils.c:275
void render_utils_create_wire_cube_vbo(GLuint *vbo)
Creates a wireframe Unit Cube VBO (GL_LINES).
Definition: render_utils.c:88
void render_utils_create_quad_vbo(GLuint *vbo)
Creates a standard centered Quad VBO.
Definition: render_utils.c:73
void render_utils_create_fullscreen_quad(GLuint *vao, GLuint *vbo)
Creates a Full-Screen Quad VAO and VBO.
Definition: render_utils.c:128
void render_utils_generate_gpu_identifier(const char *vendor, const char *renderer, char *buffer, size_t size)
Sanitizes GPU vendor and renderer strings into a filesystem-safe identifier.
Definition: render_utils.c:213
GLuint render_utils_create_texture_2d(int width, int height, GLenum internal_format, GLint levels, const char *label)
Creates a 2D texture with specified parameters.
Definition: render_utils.c:251
void render_utils_create_empty_vao(GLuint *vao)
Creates an empty Vertex Array Object (VAO).
Definition: render_utils.c:65
void render_utils_create_wire_quad_vbo(GLuint *vbo)
Creates a wireframe Quad VBO (GL_LINE_LOOP).
Definition: render_utils.c:114
void render_utils_restore_state(const GLStateBackup *state)
Restores OpenGL state from a backup struct.
Definition: render_utils.c:320
GLStateBackup render_utils_save_state(void)
Saves current OpenGL state to a backup struct.
Definition: render_utils.c:311
GLuint render_utils_create_color_texture(float red, float green, float blue, float alpha)
Creates a 1x1 floating-point texture of a specific color.
Definition: render_utils.c:15
int render_utils_check_framebuffer(const char *label)
Checks the completeness of the currently bound framebuffer.
Definition: render_utils.c:170
void render_utils_setup_ui_state(void)
Configures standard 2D/UI rendering state (Alpha blend, No depth).
Definition: render_utils.c:337
Struct to backup common OpenGL state bits to restore after 2D/UI passes.
Definition: render_utils.h:236
GLboolean depth_enabled
Definition: render_utils.h:237
GLboolean blend_enabled
Definition: render_utils.h:238
Struct to hold GPU hardware and driver information.
Definition: render_utils.h:145
const char * vendor
Definition: render_utils.h:147
const char * version
Definition: render_utils.h:150
const char * renderer
Definition: render_utils.h:148