|
Kohi Game Engine
|
#include "assets/kasset_types.h"#include "audio/kaudio_types.h"#include "core_resource_types.h"#include "defines.h"#include "graphs/hierarchy_graph.h"#include "identifiers/khandle.h"#include "kresources/kresource_types.h"#include "math/math_types.h"#include "resources/debug/debug_grid.h"#include "systems/static_mesh_system.h"Go to the source code of this file.
Data Structures | |
| struct | scene_attachment |
| struct | scene_node_metadata |
| struct | scene_static_mesh_metadata |
| struct | scene_terrain_metadata |
| struct | scene_skybox_metadata |
| struct | scene_water_plane_metadata |
| struct | scene |
Typedefs | |
| typedef enum scene_state | scene_state |
| typedef struct scene_attachment | scene_attachment |
| typedef enum scene_flag | scene_flag |
| typedef u32 | scene_flags |
| typedef struct scene_node_metadata | scene_node_metadata |
| typedef struct scene_static_mesh_metadata | scene_static_mesh_metadata |
| typedef struct scene_terrain_metadata | scene_terrain_metadata |
| typedef struct scene_skybox_metadata | scene_skybox_metadata |
| typedef struct scene_water_plane_metadata | scene_water_plane_metadata |
| typedef struct scene | scene |
Enumerations | |
| enum | scene_state { SCENE_STATE_UNINITIALIZED , SCENE_STATE_INITIALIZED , SCENE_STATE_LOADING , SCENE_STATE_LOADED , SCENE_STATE_UNLOADING , SCENE_STATE_UNLOADED } |
| enum | scene_flag { SCENE_FLAG_NONE = 0 , SCENE_FLAG_READONLY = 1 } |
Functions | |
| KAPI b8 | scene_create (kasset_scene *config, scene_flags flags, scene *out_scene) |
| Creates a new scene with the given config with default values. No resources are allocated. Config is not yet processed. More... | |
| KAPI b8 | scene_initialize (scene *scene) |
| Performs initialization routines on the scene, including processing configuration (if provided) and scaffolding heirarchy. More... | |
| KAPI b8 | scene_load (scene *scene) |
| Performs loading routines and resource allocation on the given scene. More... | |
| KAPI b8 | scene_unload (scene *scene, b8 immediate) |
| Performs unloading routines and resource de-allocation on the given scene. A scene is also destroyed when unloading. More... | |
| KAPI void | scene_destroy (scene *s) |
| Destroys the scene, releasing any remaining resources held by it. Automatically triggers unload if scene is currently loaded. More... | |
| KAPI b8 | scene_update (scene *scene, const struct frame_data *p_frame_data) |
| Performs any required scene updates for the given frame. More... | |
| KAPI void | scene_render_frame_prepare (scene *scene, const struct frame_data *p_frame_data) |
| KAPI void | scene_update_lod_from_view_position (scene *scene, const struct frame_data *p_frame_data, vec3 view_position, f32 near_clip, f32 far_clip) |
| Updates LODs of items in the scene based on the given position and clipping distances. More... | |
| KAPI b8 | scene_raycast (scene *scene, const struct ray *r, struct raycast_result *out_result) |
| KAPI b8 | scene_debug_render_data_query (scene *scene, u32 *data_count, struct geometry_render_data **debug_geometries) |
| KAPI b8 | scene_mesh_render_data_query (const scene *scene, const frustum *f, vec3 center, struct frame_data *p_frame_data, u32 *out_count, struct geometry_render_data **out_geometries) |
| KAPI b8 | scene_mesh_render_data_query_from_line (const scene *scene, vec3 direction, vec3 center, f32 radius, struct frame_data *p_frame_data, u32 *out_count, struct geometry_render_data **out_geometries) |
| KAPI b8 | scene_terrain_render_data_query (const scene *scene, const frustum *f, vec3 center, struct frame_data *p_frame_data, u32 *out_count, struct geometry_render_data **out_terrain_geometries) |
| KAPI b8 | scene_terrain_render_data_query_from_line (const scene *scene, vec3 direction, vec3 center, f32 radius, struct frame_data *p_frame_data, u32 *out_count, struct geometry_render_data **out_geometries) |
| KAPI b8 | scene_water_plane_query (const scene *scene, const frustum *f, vec3 center, struct frame_data *p_frame_data, u32 *out_count, struct water_plane ***out_water_planes) |
| KAPI b8 | scene_node_xform_get_by_name (const scene *scene, kname name, khandle *out_xform_handle) |
| KAPI b8 | scene_node_xform_get (const scene *scene, khandle node_handle, khandle *out_xform_handle) |
| KAPI b8 | scene_node_local_matrix_get (const scene *scene, khandle node_handle, mat4 *out_matrix) |
| KAPI b8 | scene_node_local_matrix_get_by_name (const scene *scene, kname name, mat4 *out_matrix) |
| KAPI b8 | scene_node_exists (const scene *s, kname name) |
| KAPI b8 | scene_node_child_count_get (const scene *s, kname name, u32 *out_child_count) |
| KAPI b8 | scene_node_child_name_get_by_index (const scene *s, kname name, u32 index, kname *out_child_name) |
| KAPI b8 | scene_save (scene *s) |
| typedef struct scene_attachment scene_attachment |
| typedef enum scene_flag scene_flag |
| typedef u32 scene_flags |
| typedef struct scene_node_metadata scene_node_metadata |
| typedef struct scene_skybox_metadata scene_skybox_metadata |
| typedef enum scene_state scene_state |
| typedef struct scene_static_mesh_metadata scene_static_mesh_metadata |
| typedef struct scene_terrain_metadata scene_terrain_metadata |
| typedef struct scene_water_plane_metadata scene_water_plane_metadata |
| enum scene_flag |
| enum scene_state |
| KAPI b8 scene_create | ( | kasset_scene * | config, |
| scene_flags | flags, | ||
| scene * | out_scene | ||
| ) |
Creates a new scene with the given config with default values. No resources are allocated. Config is not yet processed.
| config | A pointer to the configuration resource. Optional. |
| flags | Flags to be used during creation (i.e. read-only, etc.). |
| out_scene | A pointer to hold the newly created scene. Required. |
| KAPI b8 scene_debug_render_data_query | ( | scene * | scene, |
| u32 * | data_count, | ||
| struct geometry_render_data ** | debug_geometries | ||
| ) |
Destroys the scene, releasing any remaining resources held by it. Automatically triggers unload if scene is currently loaded.
| s | A pointer to the scene to be destroyed. |
Performs initialization routines on the scene, including processing configuration (if provided) and scaffolding heirarchy.
| scene | A pointer to the scene to be initialized. |
Performs loading routines and resource allocation on the given scene.
| scene | A pointer to the scene to be loaded. |
| KAPI b8 scene_mesh_render_data_query | ( | const scene * | scene, |
| const frustum * | f, | ||
| vec3 | center, | ||
| struct frame_data * | p_frame_data, | ||
| u32 * | out_count, | ||
| struct geometry_render_data ** | out_geometries | ||
| ) |
| KAPI b8 scene_mesh_render_data_query_from_line | ( | const scene * | scene, |
| vec3 | direction, | ||
| vec3 | center, | ||
| f32 | radius, | ||
| struct frame_data * | p_frame_data, | ||
| u32 * | out_count, | ||
| struct geometry_render_data ** | out_geometries | ||
| ) |
| KAPI b8 scene_node_child_name_get_by_index | ( | const scene * | s, |
| kname | name, | ||
| u32 | index, | ||
| kname * | out_child_name | ||
| ) |
| KAPI b8 scene_node_xform_get | ( | const scene * | scene, |
| khandle | node_handle, | ||
| khandle * | out_xform_handle | ||
| ) |
| KAPI b8 scene_node_xform_get_by_name | ( | const scene * | scene, |
| kname | name, | ||
| khandle * | out_xform_handle | ||
| ) |
| KAPI b8 scene_raycast | ( | scene * | scene, |
| const struct ray * | r, | ||
| struct raycast_result * | out_result | ||
| ) |
| KAPI void scene_render_frame_prepare | ( | scene * | scene, |
| const struct frame_data * | p_frame_data | ||
| ) |
| KAPI b8 scene_terrain_render_data_query | ( | const scene * | scene, |
| const frustum * | f, | ||
| vec3 | center, | ||
| struct frame_data * | p_frame_data, | ||
| u32 * | out_count, | ||
| struct geometry_render_data ** | out_terrain_geometries | ||
| ) |
| KAPI b8 scene_terrain_render_data_query_from_line | ( | const scene * | scene, |
| vec3 | direction, | ||
| vec3 | center, | ||
| f32 | radius, | ||
| struct frame_data * | p_frame_data, | ||
| u32 * | out_count, | ||
| struct geometry_render_data ** | out_geometries | ||
| ) |
Performs unloading routines and resource de-allocation on the given scene. A scene is also destroyed when unloading.
| scene | A pointer to the scene to be unloaded. |
| immediate | Unload immediately instead of the next frame. NOTE: can have unintended side effects if used improperly. |
| KAPI b8 scene_update | ( | scene * | scene, |
| const struct frame_data * | p_frame_data | ||
| ) |
Performs any required scene updates for the given frame.
| scene | A pointer to the scene to be updated. |
| p_frame_data | A constant pointer to the current frame's data. |
| KAPI void scene_update_lod_from_view_position | ( | scene * | scene, |
| const struct frame_data * | p_frame_data, | ||
| vec3 | view_position, | ||
| f32 | near_clip, | ||
| f32 | far_clip | ||
| ) |
Updates LODs of items in the scene based on the given position and clipping distances.
| scene | A pointer to the scene to be updated. |
| p_frame_data | A constant pointer to the current frame's data. |
| view_position | The view position to use for LOD calculation. |
| near_clip | The near clipping distance from the view position. |
| far_clip | The far clipping distance from the view position. |
| KAPI b8 scene_water_plane_query | ( | const scene * | scene, |
| const frustum * | f, | ||
| vec3 | center, | ||
| struct frame_data * | p_frame_data, | ||
| u32 * | out_count, | ||
| struct water_plane *** | out_water_planes | ||
| ) |