Claude Chappe' Curse - A C Game
Logo Institut d'Informatique Claude Chappe Logo Université de Le Mans Logo Raeptor Production
 
Loading...
Searching...
No Matches
Shader Management

This file contains the declarations for shader management functions. More...

Macros

#define DEFAULT_RENDER_SHADER   "shaders/deferredShader.vs", "shaders/deferredShader.fs"
 Defines the default vertex and fragment shaders for rendering shadows.
 
#define DEFAULT_DEPTH_SHADER   "shaders/simpleDepthShader.vs", "shaders/simpleDepthShader.fs"
 Defines the default vertex and fragment shaders for simple depth rendering.
 
#define DEFAULT_SCREEN_SHADER   "shaders/screen.vs", "shaders/screen.fs"
 Defines the default vertex and fragment shaders for screen post-processing.
 
#define DEFAULT_SMAA_SHADER   "shaders/smaa.vs", "shaders/smaa.fs"
 Defines the default vertex and fragment shaders for SMAA (Subpixel Morphological Anti-Aliasing).
 
#define DEFAULT_SKYBOX_SHADER   "shaders/skybox.vs", "shaders/skybox.fs"
 Defines the default vertex and fragment shaders for rendering the skybox.
 
#define DEFAULT_GUI_SHADER   "shaders/gui.vs", "shaders/gui.fs"
 Defines the default vertex and fragment shaders for rendering the GUI.
 
#define DEFAULT_SSR_SHADER   "shaders/ssr.vs", "shaders/ssr.fs"
 Defines the default vertex and fragment shaders for Screen Space Reflections (SSR).
 
#define DEFAULT_LIGHT_SHADER   "shaders/lightPass.vs", "shaders/lightPass.fs"
 Defines the default vertex and fragment shaders for rendering lights.
 
#define DEFAULT_SSAO_SHADER   "shaders/ssao.vs", "shaders/ssao.fs"
 Defines the default vertex and fragment shaders for Screen Space Ambient Occlusion (SSAO).
 
#define DEFAULT_SSAO_BLUR_SHADER   "shaders/ssaoBlur.vs", "shaders/ssaoBlur.fs"
 Defines the default vertex and fragment shaders for SSAO blur.
 
#define DEFAULT_BLOOM_SHADER   "shaders/bloom.vs", "shaders/bloom.fs"
 Defines the default vertex and fragment shaders for bloom effect.
 

Functions

void create_shaders (Shader shaders[])
 Creates multiple shaders.
 
Shader create_shader (char *vertexPath, char *fragmentPath)
 Creates a shader program from vertex and fragment shader files.
 
void set_shader_screen_size (Shader ID, int width, int height)
 Sets the screen size for the shader program.
 
void set_shaders_screen_size (int width, int height)
 Sets the screen size for all shaders.
 
void use_shader (Shader ID)
 Uses the specified shader program.
 
void set_shader_int (Shader ID, char *name, int value)
 Sets an integer uniform in the shader program.
 
void set_shader_float (Shader ID, char *name, float value)
 Sets a float uniform in the shader program.
 
void set_shader_vec2 (Shader ID, char *name, vec2 value)
 Sets a vec2 uniform in the shader program.
 
void set_shader_vec3 (Shader ID, char *name, vec3 value)
 Sets a vec3 uniform in the shader program.
 
void set_shader_vec4 (Shader ID, char *name, vec4 value)
 Sets a vec4 uniform in the shader program.
 
void set_shader_mat4 (Shader ID, char *name, mat4 value)
 Sets a mat4 uniform in the shader program.
 

Detailed Description

This file contains the declarations for shader management functions.

The functions declared in this file are used to create, use, and set various types of data in shaders. Shaders are essential for rendering graphics in OpenGL, and these functions provide a convenient interface for managing them.

Macro Definition Documentation

◆ DEFAULT_RENDER_SHADER

#define DEFAULT_RENDER_SHADER   "shaders/deferredShader.vs", "shaders/deferredShader.fs"

Defines the default vertex and fragment shaders for rendering shadows.

The vertex shader is located at "shaders/forwardShadowShader.vs" and the fragment shader is located at "shaders/forwardShadowShader.fs".

◆ DEFAULT_DEPTH_SHADER

#define DEFAULT_DEPTH_SHADER   "shaders/simpleDepthShader.vs", "shaders/simpleDepthShader.fs"

Defines the default vertex and fragment shaders for simple depth rendering.

The vertex shader is located at "shaders/simpleDepthShader.vs" and the fragment shader is located at "shaders/simpleDepthShader.fs".

◆ DEFAULT_SCREEN_SHADER

#define DEFAULT_SCREEN_SHADER   "shaders/screen.vs", "shaders/screen.fs"

Defines the default vertex and fragment shaders for screen post-processing.

The vertex shader is located at "shaders/screen.vs" and the fragment shader is located at "shaders/screen.fs".

◆ DEFAULT_SMAA_SHADER

#define DEFAULT_SMAA_SHADER   "shaders/smaa.vs", "shaders/smaa.fs"

Defines the default vertex and fragment shaders for SMAA (Subpixel Morphological Anti-Aliasing).

The vertex shader is located at "shaders/smaa.vs" and the fragment shader is located at "shaders/smaa.fs".

◆ DEFAULT_SKYBOX_SHADER

#define DEFAULT_SKYBOX_SHADER   "shaders/skybox.vs", "shaders/skybox.fs"

Defines the default vertex and fragment shaders for rendering the skybox.

The vertex shader is located at "shaders/skybox.vs" and the fragment shader is located at "shaders/skybox.fs".

◆ DEFAULT_GUI_SHADER

#define DEFAULT_GUI_SHADER   "shaders/gui.vs", "shaders/gui.fs"

Defines the default vertex and fragment shaders for rendering the GUI.

The vertex shader is located at "shaders/gui.vs" and the fragment shader is located at "shaders/gui.fs".

◆ DEFAULT_SSR_SHADER

#define DEFAULT_SSR_SHADER   "shaders/ssr.vs", "shaders/ssr.fs"

Defines the default vertex and fragment shaders for Screen Space Reflections (SSR).

The vertex shader is located at "shaders/ssr.vs" and the fragment shader is located at "shaders/ssr.fs".

◆ DEFAULT_LIGHT_SHADER

#define DEFAULT_LIGHT_SHADER   "shaders/lightPass.vs", "shaders/lightPass.fs"

Defines the default vertex and fragment shaders for rendering lights.

The vertex shader is located at "shaders/lightPass.vs" and the fragment shader is located at "shaders/lightPass.fs".

◆ DEFAULT_SSAO_SHADER

#define DEFAULT_SSAO_SHADER   "shaders/ssao.vs", "shaders/ssao.fs"

Defines the default vertex and fragment shaders for Screen Space Ambient Occlusion (SSAO).

The vertex shader is located at "shaders/ssao.vs" and the fragment shader is located at "shaders/ssao.fs".

◆ DEFAULT_SSAO_BLUR_SHADER

#define DEFAULT_SSAO_BLUR_SHADER   "shaders/ssaoBlur.vs", "shaders/ssaoBlur.fs"

Defines the default vertex and fragment shaders for SSAO blur.

The vertex shader is located at "shaders/ssaoBlur.vs" and the fragment shader is located at "shaders/ssaoBlur.fs".

◆ DEFAULT_BLOOM_SHADER

#define DEFAULT_BLOOM_SHADER   "shaders/bloom.vs", "shaders/bloom.fs"

Defines the default vertex and fragment shaders for bloom effect.

The vertex shader is located at "shaders/bloom.vs" and the fragment shader is located at "shaders/bloom.fs".

Function Documentation

◆ create_shaders()

void create_shaders ( Shader  shaders[])

Creates multiple shaders.

This function initializes and compiles multiple shaders from predefined paths.

Parameters
shadersAn array of Shader objects to be created.

◆ create_shader()

Shader create_shader ( char *  vertexPath,
char *  fragmentPath 
)

Creates a shader program from vertex and fragment shader files.

This function reads the vertex and fragment shader source code from the specified file paths, compiles them, and links them into a shader program.

Parameters
vertexPathThe file path to the vertex shader source code.
fragmentPathThe file path to the fragment shader source code.
Returns
A Shader object representing the compiled and linked shader program.

◆ set_shader_screen_size()

void set_shader_screen_size ( Shader  ID,
int  width,
int  height 
)

Sets the screen size for the shader program.

This function sets the screen width and height for the shader program, which can be used for rendering calculations.

Parameters
IDThe Shader object representing the shader program.
widthThe width of the screen.
heightThe height of the screen.

◆ set_shaders_screen_size()

void set_shaders_screen_size ( int  width,
int  height 
)

Sets the screen size for all shaders.

This function sets the screen width and height for all shaders in the shader cache.

Parameters
widthThe width of the screen.
heightThe height of the screen.

◆ use_shader()

void use_shader ( Shader  ID)

Uses the specified shader program.

This function activates the shader program identified by the given Shader ID.

Parameters
IDThe Shader object representing the shader program to be used.

◆ set_shader_int()

void set_shader_int ( Shader  ID,
char *  name,
int  value 
)

Sets an integer uniform in the shader program.

This function sets the value of an integer uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe integer value to set for the uniform variable.

◆ set_shader_float()

void set_shader_float ( Shader  ID,
char *  name,
float  value 
)

Sets a float uniform in the shader program.

This function sets the value of a float uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe float value to set for the uniform variable.

◆ set_shader_vec2()

void set_shader_vec2 ( Shader  ID,
char *  name,
vec2  value 
)

Sets a vec2 uniform in the shader program.

This function sets the value of a vec2 (2-component vector) uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe vec2 value to set for the uniform variable.

◆ set_shader_vec3()

void set_shader_vec3 ( Shader  ID,
char *  name,
vec3  value 
)

Sets a vec3 uniform in the shader program.

This function sets the value of a vec3 (3-component vector) uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe vec3 value to set for the uniform variable.

◆ set_shader_vec4()

void set_shader_vec4 ( Shader  ID,
char *  name,
vec4  value 
)

Sets a vec4 uniform in the shader program.

This function sets the value of a vec4 (4-component vector) uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe vec4 value to set for the uniform variable.

◆ set_shader_mat4()

void set_shader_mat4 ( Shader  ID,
char *  name,
mat4  value 
)

Sets a mat4 uniform in the shader program.

This function sets the value of a mat4 (4x4 matrix) uniform variable in the shader program.

Parameters
IDThe Shader object representing the shader program.
nameThe name of the uniform variable in the shader program.
valueThe mat4 value to set for the uniform variable.