23 #define KRENDERBUFFER_NAME_LIGHTING_GLOBAL "Kohi.StorageBuffer.LightingGlobal"
48 #define KLIGHT_INVALID INVALID_ID_U8
62 #define MAX_GLOBAL_SSBO_LIGHTS 256
u32 ktransform
Definition: core_resource_types.h:6
This file contains global type definitions which are used throughout the entire engine and applicatio...
#define KAPI
Import/export qualifier.
Definition: defines.h:209
_Bool b8
8-bit boolean type
Definition: defines.h:60
float f32
32-bit floating point number
Definition: defines.h:49
unsigned long long u64
Unsigned 64-bit integer.
Definition: defines.h:30
unsigned char u8
Unsigned 8-bit integer.
Definition: defines.h:21
This file contains structures and logic pertaining to the overall engine itself. The engine is respon...
KAPI colour3 point_light_get_colour(light_system_state *state, klight light)
struct klight_attenuation klight_attenuation
KAPI void point_light_set_position(light_system_state *state, klight light, vec3 position)
struct light_shader_data light_shader_data
KAPI vec3 directional_light_get_direction(light_system_state *state, klight light)
KAPI void directional_light_set_direction(light_system_state *state, klight light, vec3 direction)
KAPI f32 point_light_radius_get(light_system_state *state, klight light)
KAPI colour3 directional_light_get_colour(light_system_state *state, klight light)
struct kdirectional_light_data kdirectional_light_data
KAPI klight_data light_get_data(light_system_state *state, klight light)
#define MAX_GLOBAL_SSBO_LIGHTS
Definition: light_system.h:62
void light_system_frame_prepare(light_system_state *state, frame_data *p_frame_data)
void light_system_shutdown(light_system_state *state)
Shuts down the light system, releasing all resources.
klight_type
Definition: light_system.h:31
@ KLIGHT_TYPE_UNDEFINED
Definition: light_system.h:32
@ KLIGHT_TYPE_DIRECTIONAL
Definition: light_system.h:34
@ KLIGHT_TYPE_POINT
Definition: light_system.h:33
b8 light_system_initialize(u64 *memory_requirement, light_system_state *memory, void *config)
Initializes the light system. As with most systems, this should be called twice, the first time to ob...
struct light_global_ssbo_data light_global_ssbo_data
struct klight_render_data klight_render_data
struct klight_data klight_data
KAPI void light_destroy(light_system_state *state, klight light)
KAPI vec3 point_light_get_position(light_system_state *state, klight light)
KAPI klight point_light_create(light_system_state *state, vec3 position, colour3 colour, f32 constant_f, f32 linear, f32 quadratic)
KAPI void point_light_set_colour(light_system_state *state, klight light, colour3 colour)
u8 klight
Definition: light_system.h:47
KAPI klight directional_light_create(light_system_state *state, vec3 direction, colour3 colour)
struct light_system_state light_system_state
Contains various math types required for the engine.
u16 krenderbuffer
Definition: renderer_types.h:175
Engine-level current frame-specific data.
Definition: frame_data.h:15
Definition: light_system.h:55
klight light
Definition: light_system.h:56
vec3 direction
Definition: light_system.h:57
Definition: light_system.h:25
f32 constant_f
Definition: light_system.h:26
f32 quadratic
Definition: light_system.h:28
f32 linear
Definition: light_system.h:27
Definition: light_system.h:37
vec3 position
Definition: light_system.h:41
klight_type type
Definition: light_system.h:38
colour3 colour
Definition: light_system.h:39
vec3 direction
Definition: light_system.h:42
klight_attenuation attenuation
Definition: light_system.h:44
Definition: light_system.h:50
klight light
Definition: light_system.h:51
ktransform transform
Definition: light_system.h:52
Definition: light_system.h:89
light_shader_data lights[MAX_GLOBAL_SSBO_LIGHTS]
Definition: light_system.h:90
Definition: light_system.h:65
vec4 position
Definition: light_system.h:77
vec4 colour
Definition: light_system.h:70
vec4 direction
Definition: light_system.h:83
Definition: light_system.h:93
klight_data * lights
Definition: light_system.h:96
krenderbuffer lighting_global_ssbo
Definition: light_system.h:94
A 3-element vector.
Definition: math_types.h:117
A 4-element vector.
Definition: math_types.h:229