43 KSCENE_FLAG_DEBUG_ENABLED_BIT = 1 << 0,
44 KSCENE_FLAG_DEBUG_GRID_ENABLED_BIT = 1 << 1,
45 KSCENE_FLAG_DEBUG_BVH_ENABLED_BIT = 1 << 2,
124 struct kscene* scene,
130 u8 hit_shape_tag_count,
132 const char* on_enter_command,
133 const char* on_leave_command,
134 const char* on_tick_command);
137 struct kscene* scene,
146 struct kscene* scene,
153 struct kscene* scene,
169 KAPI void kscene_enable_debug(
struct kscene* scene,
b8 enabled);
170 KAPI void kscene_enable_debug_grid(
struct kscene* scene,
b8 enabled);
181 struct kscene* scene,
185 u16* out_material_count);
188 struct kscene* scene,
192 u16* out_material_count);
196 struct kscene* scene,
200 u16* out_terrain_count);
204 struct kscene* scene,
208 u16* out_geometry_count);
211 struct kscene* scene,
218 struct kscene* scene,
222 u16* out_water_plane_count);
225 struct kscene* scene,
227 u16* out_spawn_point_count);
230 struct kscene* scene,
233 u16* out_point_light_count);
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
unsigned int u32
Unsigned 32-bit integer.
Definition: defines.h:27
_Bool b8
8-bit boolean type
Definition: defines.h:60
float f32
32-bit floating point number
Definition: defines.h:49
unsigned short u16
Unsigned 16-bit integer.
Definition: defines.h:24
unsigned char u8
Unsigned 8-bit integer.
Definition: defines.h:21
u8 kcamera
Definition: kcamera_system.h:28
u64 kname
A kname is a string hash made for quick comparisons versus traditional string comparisons.
Definition: kname.h:36
KAPI kentity kscene_add_volume(struct kscene *scene, kname name, ktransform transform, kentity parent, kscene_volume_type type, kcollision_shape shape, u8 hit_shape_tag_count, kstring_id *hit_shape_tags, const char *on_enter_command, const char *on_leave_command, const char *on_tick_command)
KAPI void kscene_set_active_camera(struct kscene *scene, kcamera camera)
KAPI b8 kscene_raycast(struct kscene *scene, const struct ray *r, struct raycast_result *out_result)
KAPI void kscene_set_flag(struct kscene *scene, kscene_flags flag, b8 enabled)
KAPI kmaterial_render_data * kscene_get_static_model_render_data(struct kscene *scene, struct frame_data *p_frame_data, kfrustum *frustum, kscene_render_data_flag_bits flags, u16 *out_material_count)
KAPI vec3 kscene_get_fog_colour(const struct kscene *scene)
KAPI kentity_flags kscene_get_entity_flags(struct kscene *scene, kentity entity)
struct kscene_hierarchy_node kscene_hierarchy_node
KAPI ktransform kscene_get_entity_transform(struct kscene *scene, kentity entity)
KAPI void kscene_set_entity_flags(struct kscene *scene, kentity entity, kentity_flags flags)
KAPI quat kscene_get_entity_rotation(struct kscene *scene, kentity entity)
KAPI extents_3d kscene_get_aabb(struct kscene *scene, kentity entity)
KAPI kentity kscene_add_audio_emitter(struct kscene *scene, kname name, ktransform transform, kentity parent, f32 inner_radius, f32 outer_radius, f32 volume, f32 falloff, b8 is_looping, b8 is_streaming, kname asset_name, kname package_name)
KAPI kmodel_instance kscene_model_entity_get_instance(struct kscene *scene, kentity entity)
KAPI struct kscene * kscene_create(const char *config, PFN_scene_loaded loaded_callback, void *load_context)
u32 kscene_render_data_flag_bits
Definition: kscene.h:38
KAPI kentity kscene_add_point_light(struct kscene *scene, kname name, ktransform transform, kentity parent, vec3 colour, f32 linear, f32 quadratic)
Creates and adds a new point light entity to the scene.
kscene_flag_bits
Definition: kscene.h:40
@ KSCENE_FLAG_NONE
Definition: kscene.h:41
KAPI kmaterial_render_data * kscene_get_animated_model_render_data(struct kscene *scene, struct frame_data *p_frame_data, kfrustum *frustum, kscene_render_data_flag_bits flags, u16 *out_material_count)
u32 kscene_flags
Definition: kscene.h:49
KAPI kscene_state kscene_state_get(const struct kscene *scene)
KAPI void kscene_set_fog_colour(struct kscene *scene, colour3 colour)
KAPI kentity kscene_add_hit_shape(struct kscene *scene, kname name, ktransform transform, kentity parent, kcollision_shape shape, u8 tag_count, kstring_id *tags)
KAPI hm_terrain_render_data * kscene_get_hm_terrain_render_data(struct kscene *scene, struct frame_data *p_frame_data, kfrustum *frustum, u32 flags, u16 *out_terrain_count)
KAPI const char * kscene_get_name(const struct kscene *scene)
KAPI kentity kscene_get_entity_by_name(struct kscene *scene, kname name)
KAPI void kscene_cleanup_hierarchy(kscene_hierarchy_node *nodes, u32 count)
KAPI kentity_type kscene_get_entity_type(struct kscene *scene, kentity entity)
KAPI kentity * kscene_get_entity_children(struct kscene *scene, kentity entity, u16 *out_count)
KAPI kwater_plane_render_data * kscene_get_water_plane_render_data(struct kscene *scene, struct frame_data *p_frame_data, kfrustum *frustum, u32 flags, u16 *out_water_plane_count)
KAPI void kscene_set_entity_position(struct kscene *scene, kentity entity, vec3 position)
KAPI void kscene_set_entity_flag(struct kscene *scene, kentity entity, kentity_flag_bits flag, b8 enabled)
KAPI void kscene_set_fog_far(struct kscene *scene, f32 far)
KAPI void kscene_set_name(struct kscene *scene, const char *name)
KAPI void kscene_set_flags(struct kscene *scene, kscene_flags flags)
KAPI kdirectional_light_data kscene_get_directional_light_data(struct kscene *scene)
KAPI kentity * kscene_get_spawn_points(struct kscene *scene, u32 flags, u16 *out_spawn_point_count)
KAPI void kscene_destroy(struct kscene *scene)
KAPI kentity kscene_get_entity_parent(struct kscene *scene, kentity entity)
KAPI b8 kscene_frame_prepare(struct kscene *scene, struct frame_data *p_frame_data, u32 render_mode, kcamera current_camera)
KAPI kentity kscene_add_model(struct kscene *scene, kname name, ktransform transform, kentity parent, kname asset_name, kname package_name, PFN_model_loaded on_loaded_callback, void *load_context)
void(* PFN_scene_loaded)(struct kscene *scene, void *context)
Definition: kscene.h:51
void(* PFN_model_loaded)(kentity entity, kmodel_instance inst, void *context)
Definition: kscene.h:108
KAPI f32 kscene_get_fog_far(const struct kscene *scene)
KAPI void kscene_set_entity_scale(struct kscene *scene, kentity entity, vec3 scale)
KAPI kscene_hierarchy_node * kscene_get_hierarchy(const struct kscene *scene, u32 *out_count)
KAPI kscene_flags kscene_get_flags(const struct kscene *scene)
KAPI kentity kscene_add_spawn_point(struct kscene *scene, kname name, ktransform transform, kentity parent, f32 radius)
KAPI void kscene_set_fog_near(struct kscene *scene, f32 near)
KAPI void kscene_get_shadow_properties(struct kscene *scene, f32 *out_shadow_dist, f32 *out_shadow_fade_distance, f32 *out_shadow_split_mult, f32 *out_shadow_bias)
KAPI kentity kscene_add_water_plane(struct kscene *scene, kname name, ktransform transform, kentity parent, f32 size)
KAPI kskybox_render_data kscene_get_skybox_render_data(struct kscene *scene)
KAPI void kscene_on_window_resize(struct kscene *scene, const struct kwindow *window)
KAPI void kscene_set_entity_rotation(struct kscene *scene, kentity entity, quat rotation)
KAPI vec3 kscene_get_entity_position(struct kscene *scene, kentity entity)
KAPI b8 kscene_update(struct kscene *scene, struct frame_data *p_frame_data)
KAPI f32 kscene_get_fog_near(const struct kscene *scene)
KAPI kname kscene_get_entity_name(struct kscene *scene, kentity entity)
KAPI b8 kscene_get_flag(const struct kscene *scene, kscene_flag_bits flag)
kscene_state
Definition: kscene.h:22
@ KSCENE_STATE_UNINITIALIZED
Definition: kscene.h:23
@ KSCENE_STATE_LOADED
Definition: kscene.h:27
@ KSCENE_STATE_LOADING
Definition: kscene.h:25
@ KSCENE_STATE_PRE_LOADED
Definition: kscene.h:26
@ KSCENE_STATE_PARSING_CONFIG
Definition: kscene.h:24
KAPI klight_render_data * kscene_get_all_point_lights(struct kscene *scene, struct frame_data *p_frame_data, u32 flags, u16 *out_point_light_count)
KAPI kentity kscene_add_model_pos_rot_scale(struct kscene *scene, kname name, kentity parent, kname asset_name, kname package_name, vec3 pos, quat rot, vec3 scale)
KAPI void kscene_set_entity_name(struct kscene *scene, kentity entity, kname name)
KAPI void kscene_remove_entity(struct kscene *scene, kentity *entity)
KAPI const char * kscene_serialize(const struct kscene *scene)
KAPI void kscene_dump_hierarchy(const struct kscene *scene)
kscene_render_data_flag
Definition: kscene.h:30
@ KSCENE_RENDER_DATA_FLAG_TRANSPARENT_BIT
Definition: kscene.h:33
@ KSCENE_RENDER_INCLUDE_BVH_DEBUG_BIT
Definition: kscene.h:35
@ KSCENE_RENDER_DATA_FLAG_NONE
Definition: kscene.h:31
KAPI vec3 kscene_get_entity_scale(struct kscene *scene, kentity entity)
KAPI kentity kscene_add_entity(struct kscene *scene, kname name, ktransform transform, kentity parent)
This files contains an implementation of kstring_ids.
u64 kstring_id
A kstring_id is a string hash made for quick comparisons versus traditional string comparisons.
Definition: kstring_id.h:32
This file contains the implementation of the light system, which manages all lighting objects within ...
Contains various math types required for the engine.
Represents the extents of a 3d object.
Definition: math_types.h:401
Engine-level current frame-specific data.
Definition: frame_data.h:15
Definition: kforward_renderer.h:142
Definition: world_types.h:17
Definition: kforward_renderer.h:275
Definition: light_system.h:55
Definition: math_types.h:500
Definition: light_system.h:50
Definition: kforward_renderer.h:125
Definition: kmodel_system.h:148
struct kscene_hierarchy_node * children
Definition: kscene.h:242
u32 child_count
Definition: kscene.h:241
kentity entity
Definition: kscene.h:240
Definition: kforward_renderer.h:89
Definition: kforward_renderer.h:211
Represents a window in the application.
Definition: platform.h:71
Represents a line which starts at an origin and proceed infinitely in the given direction....
Definition: math_types.h:638
Definition: math_types.h:660
A 3-element vector.
Definition: math_types.h:117
A 4-element vector.
Definition: math_types.h:229
u32 kentity_flags
Definition: world_types.h:46
kentity_type
Definition: world_types.h:48
kscene_volume_type
Definition: world_types.h:13
u64 kentity
Definition: world_types.h:35
kentity_flag_bits
Definition: world_types.h:38