16 #include <cglm/types.h>
92 const vec3 color,
float velocity,
float sim_time);
117 vec3 camera_pos,
float sim_time,
int screen_w,
Common OpenGL definitions, RAII helpers, and utilities.
static const float SHOCKWAVE_DURATION
Definition: shockwave.h:25
@ SHOCKWAVE_MAX_ACTIVE
Definition: shockwave.h:22
void shockwave_emit(ShockwaveRenderer *renderer, const vec3 position, const vec3 color, float velocity, float sim_time)
Registers a new shockwave at the given position.
Definition: shockwave.c:77
static const float SHOCKWAVE_MAX_RADIUS
Definition: shockwave.h:28
static const float SHOCKWAVE_MIN_VELOCITY
Definition: shockwave.h:32
void shockwave_renderer_cleanup(ShockwaveRenderer *renderer)
Releases all GPU resources.
Definition: shockwave.c:59
static const float SHOCKWAVE_HDR_INTENSITY
Definition: shockwave.h:35
void shockwave_update(ShockwaveRenderer *renderer, float sim_time)
Removes expired shockwaves based on current simulation time.
Definition: shockwave.c:112
bool shockwave_renderer_init(ShockwaveRenderer *renderer)
Initializes shockwave renderer (shader + GPU resources).
Definition: shockwave.c:26
void shockwave_draw(const ShockwaveRenderer *renderer, mat4 view, mat4 proj, vec3 camera_pos, float sim_time, int screen_w, int screen_h)
Draws all active shockwaves as billboard quads with lensing.
Definition: shockwave.c:162
Wrapper for an OpenGL program with uniform caching and automatic cleanup.
Definition: shader.h:71
One active shockwave expanding from an impact point.
Definition: shockwave.h:41
vec3 position
Definition: shockwave.h:42
float intensity
Definition: shockwave.h:45
float start_time
Definition: shockwave.h:43
vec3 color
Definition: shockwave.h:44
Manages and renders active shockwave effects.
Definition: shockwave.h:52
GLuint vao
Definition: shockwave.h:57
GLuint scene_color_tex
Definition: shockwave.h:65
GLuint grab_tex
Definition: shockwave.h:62
int count
Definition: shockwave.h:54
int grab_width
Definition: shockwave.h:63
GLuint vbo
Definition: shockwave.h:58
int grab_height
Definition: shockwave.h:64
Shader * shader
Definition: shockwave.h:56