Kohi Game Engine
kmaterial_renderer.h File Reference

Go to the source code of this file.

Data Structures

struct  klight_shader_data
 
struct  base_material_shader_data
 
struct  kmaterial_settings_ubo
 
struct  kmaterial_render_immediate_data
 
struct  kmaterial_renderer
 State for the material renderer. More...
 

Macros

#define KMATERIAL_UBO_MAX_VIEWS   16
 
#define KMATERIAL_UBO_MAX_PROJECTIONS   4
 
#define KMATERIAL_UBO_MAX_SHADOW_CASCADES   4
 
#define KRENDERBUFFER_NAME_MATERIALS_GLOBAL   "Kohi.StorageBuffer.MaterialsGlobal"
 

Typedefs

typedef struct klight_shader_data klight_shader_data
 
typedef struct base_material_shader_data base_material_shader_data
 
typedef struct kmaterial_settings_ubo kmaterial_settings_ubo
 
typedef enum kmaterial_data_index kmaterial_data_index
 
typedef enum kmaterial_data_index2 kmaterial_data_index2
 
typedef struct kmaterial_render_immediate_data kmaterial_render_immediate_data
 
typedef struct kmaterial_renderer kmaterial_renderer
 State for the material renderer. More...
 

Enumerations

enum  kmaterial_data_index { KMATERIAL_DATA_INDEX_VIEW = 0 , KMATERIAL_DATA_INDEX_PROJECTION = 1 }
 
enum  kmaterial_data_index2 { KMATERIAL_DATA_INDEX2_ANIMATION = 0 , KMATERIAL_DATA_INDEX2_BASE_MATERIAL = 1 }
 

Functions

KAPI b8 kmaterial_renderer_initialize (kmaterial_renderer *out_state, u32 max_material_count, u32 max_material_instance_count)
 
KAPI void kmaterial_renderer_shutdown (kmaterial_renderer *state)
 
KAPI void kmaterial_renderer_update (kmaterial_renderer *state)
 
KAPI void kmaterial_renderer_set_fog_colour (kmaterial_renderer *state, colour3 colour)
 
KAPI void kmaterial_renderer_set_fog_near_far (kmaterial_renderer *state, f32 near, f32 far)
 
KAPI void kmaterial_renderer_register_base (kmaterial_renderer *state, kmaterial_data *material_data)
 
KAPI void kmaterial_renderer_unregister_base (kmaterial_renderer *state, kmaterial_data *material_data)
 
KAPI void kmaterial_renderer_set_irradiance_cubemap_textures (kmaterial_renderer *state, u8 count, ktexture *irradiance_cubemap_textures)
 
KAPI void kmaterial_renderer_apply_globals (kmaterial_renderer *state)
 
KAPI void kmaterial_renderer_bind_base (kmaterial_renderer *state, kmaterial base)
 
KAPI void kmaterial_renderer_set_animated (kmaterial_renderer *state, b8 is_animated)
 
KAPI void kmaterial_renderer_apply_immediates (kmaterial_renderer *state, kmaterial_instance instance, const kmaterial_render_immediate_data *immediates)
 

Macro Definition Documentation

◆ KMATERIAL_UBO_MAX_PROJECTIONS

#define KMATERIAL_UBO_MAX_PROJECTIONS   4

◆ KMATERIAL_UBO_MAX_SHADOW_CASCADES

#define KMATERIAL_UBO_MAX_SHADOW_CASCADES   4

◆ KMATERIAL_UBO_MAX_VIEWS

#define KMATERIAL_UBO_MAX_VIEWS   16

◆ KRENDERBUFFER_NAME_MATERIALS_GLOBAL

#define KRENDERBUFFER_NAME_MATERIALS_GLOBAL   "Kohi.StorageBuffer.MaterialsGlobal"

Typedef Documentation

◆ base_material_shader_data

◆ klight_shader_data

The uniform data for a light. 32 bytes. Can be used for point or directional lights.

◆ kmaterial_data_index

◆ kmaterial_data_index2

◆ kmaterial_render_immediate_data

◆ kmaterial_renderer

State for the material renderer.

◆ kmaterial_settings_ubo

Enumeration Type Documentation

◆ kmaterial_data_index

Enumerator
KMATERIAL_DATA_INDEX_VIEW 
KMATERIAL_DATA_INDEX_PROJECTION 

◆ kmaterial_data_index2

Enumerator
KMATERIAL_DATA_INDEX2_ANIMATION 
KMATERIAL_DATA_INDEX2_BASE_MATERIAL 

Function Documentation

◆ kmaterial_renderer_apply_globals()

KAPI void kmaterial_renderer_apply_globals ( kmaterial_renderer state)

◆ kmaterial_renderer_apply_immediates()

KAPI void kmaterial_renderer_apply_immediates ( kmaterial_renderer state,
kmaterial_instance  instance,
const kmaterial_render_immediate_data immediates 
)

◆ kmaterial_renderer_bind_base()

KAPI void kmaterial_renderer_bind_base ( kmaterial_renderer state,
kmaterial  base 
)

◆ kmaterial_renderer_initialize()

KAPI b8 kmaterial_renderer_initialize ( kmaterial_renderer out_state,
u32  max_material_count,
u32  max_material_instance_count 
)

◆ kmaterial_renderer_register_base()

KAPI void kmaterial_renderer_register_base ( kmaterial_renderer state,
kmaterial_data material_data 
)

◆ kmaterial_renderer_set_animated()

KAPI void kmaterial_renderer_set_animated ( kmaterial_renderer state,
b8  is_animated 
)

◆ kmaterial_renderer_set_fog_colour()

KAPI void kmaterial_renderer_set_fog_colour ( kmaterial_renderer state,
colour3  colour 
)

◆ kmaterial_renderer_set_fog_near_far()

KAPI void kmaterial_renderer_set_fog_near_far ( kmaterial_renderer state,
f32  near,
f32  far 
)

◆ kmaterial_renderer_set_irradiance_cubemap_textures()

KAPI void kmaterial_renderer_set_irradiance_cubemap_textures ( kmaterial_renderer state,
u8  count,
ktexture irradiance_cubemap_textures 
)

◆ kmaterial_renderer_shutdown()

KAPI void kmaterial_renderer_shutdown ( kmaterial_renderer state)

◆ kmaterial_renderer_unregister_base()

KAPI void kmaterial_renderer_unregister_base ( kmaterial_renderer state,
kmaterial_data material_data 
)

◆ kmaterial_renderer_update()

KAPI void kmaterial_renderer_update ( kmaterial_renderer state)