LibGame v0.4.0
The LG Game Engine - Copyright (C) 2024-2026 ETMSoftware
Loading...
Searching...
No Matches
lg_grid_geom_shader.c File Reference

Functions

zboolean lg_build_grid_geom_shader (LG_Grid_GeomShader *grid_geomsh, LG_Color_u color)
 
zboolean lg_draw_grid_geom (LG_Grid_GeomShader *grid_geomsh, mat4_t *view_proj_m, int grid_half_size, int grid_scaling, zboolean check_gl)
 
void lg_free_grid_geom (LG_Grid_GeomShader *grid_geomsh)
 

Detailed Description

=== Grid geometry shader stuff ===

Function Documentation

◆ lg_build_grid_geom_shader()

zboolean lg_build_grid_geom_shader ( LG_Grid_GeomShader grid_geomsh,
LG_Color_u  color 
)

Initialize an instance of a LG_Grid_GeomShader

typedef struct {
mat4_t local_matrix;
mat4_t world_matrix;
LG_ShaderProg shader_prog;
LG_ShaderULocs shader_u_loc;
LG_VAO vao;
Definition lg_grid_geom_shader.h:9
Definition lg_shader_progs.h:11
Definition lg_shader_progs.h:16
Definition lg_vbo.h:52
Definition math_3d.c:233
Parameters
grid_geomshPointer to an uninitialized LG_Grid_GeomShader instance
colorGrid color
Returns
TRUE if OK, FALSE otherwise

◆ lg_draw_grid_geom()

zboolean lg_draw_grid_geom ( LG_Grid_GeomShader grid_geomsh,
mat4_t view_proj_m,
int  grid_half_size,
int  grid_scaling,
zboolean  check_gl 
)

Draw a grid from a LG_Grid_GeomShader

grid_half_size max value = 31

256 is max valid value for max_vertices num_vertices = (grid_half_size * 2 + 1) * 4 -> grid_half_size * 2 + 1 = max_vertices / 4 grid_half_size = ((max_vertices) / 4 - 1) / 2 max_vertices = 256 -> grid_half_size max value = 31

(see: LibGame/src/libgame/shaders/grid_shader2.geom)

Parameters
grid_geomshPointer to a LG_Grid_GeomShader
view_proj_mCamera view proj matrix
grid_half_size
grid_scaling
check_glWhether to check for GL errors - useful when debugging
Returns
If check_gl is set: TRUE if OK, FALSE otherwise - always TRUE if check_gl is not set

◆ lg_free_grid_geom()

void lg_free_grid_geom ( LG_Grid_GeomShader grid_geomsh)

Free VAO and shader prog of a LG_Grid_GeomShader

Parameters
grid_geomshPointer to a LG_Grid_GeomShader