173 const char* renderer,
char* buffer,
210 GLenum internal_format, GLint levels,
228 size_t offset_albedo,
229 size_t offset_metallic,
230 size_t offset_prev_center);
243 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:245
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:48
void render_utils_setup_sphere_instance_attributes(GLuint binding_point, GLsizei stride, size_t offset_albedo, size_t offset_metallic, size_t offset_prev_center)
Sets up instance attributes for sphere rendering (Model, Albedo, PBR).
Definition render_utils.c:276
GPUInfo render_utils_get_gpu_info(void)
Retrieves currently active GPU hardware and driver information.
Definition render_utils.c:181
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:37
void render_utils_create_wire_cube_vbo(GLuint *vbo)
Creates a wireframe Unit Cube VBO (GL_LINES).
Definition render_utils.c:86
void render_utils_create_quad_vbo(GLuint *vbo)
Creates a standard centered Quad VBO.
Definition render_utils.c:71
void render_utils_create_fullscreen_quad(GLuint *vao, GLuint *vbo)
Creates a Full-Screen Quad VAO and VBO.
Definition render_utils.c:126
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:214
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:252
void render_utils_create_empty_vao(GLuint *vao)
Creates an empty Vertex Array Object (VAO).
Definition render_utils.c:63
void render_utils_create_wire_quad_vbo(GLuint *vbo)
Creates a wireframe Quad VBO (GL_LINE_LOOP).
Definition render_utils.c:112
void render_utils_restore_state(const GLStateBackup *state)
Restores OpenGL state from a backup struct.
Definition render_utils.c:331
GLStateBackup render_utils_save_state(void)
Saves current OpenGL state to a backup struct.
Definition render_utils.c:322
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:13
int render_utils_check_framebuffer(const char *label)
Checks the completeness of the currently bound framebuffer.
Definition render_utils.c:171
void render_utils_setup_ui_state(void)
Configures standard 2D/UI rendering state (Alpha blend, No depth).
Definition render_utils.c:348
Struct to backup common OpenGL state bits to restore after 2D/UI passes.
Definition render_utils.h:240
GLboolean depth_enabled
Definition render_utils.h:241
GLboolean blend_enabled
Definition render_utils.h:242
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