13 #define KANIMATION_MAX_BONES 64
14 #define KRENDERBUFFER_NAME_ANIMATIONS_GLOBAL "Kohi.StorageBuffer.AnimationsGlobal"
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 long long u64
Unsigned 64-bit integer.
Definition: defines.h:30
KAPI void kmodel_instance_play(struct kmodel_system_state *state, kmodel_instance instance)
KAPI void kmodel_instance_animation_set(struct kmodel_system_state *state, kmodel_instance instance, kname animation_name)
KAPI void kmodel_system_time_scale(kmodel_system_state *state, f32 time_scale)
struct kmodel_animation_shader_data kmodel_animation_shader_data
KAPI kname * kmodel_query_animations(struct kmodel_system_state *state, u16 base_mesh, u32 *out_count)
KAPI const kgeometry * kmodel_submesh_geometry_get_at(struct kmodel_system_state *state, u16 base_mesh_id, u16 index)
KAPI void kmodel_instance_time_scale_set(kmodel_system_state *state, kmodel_instance instance, f32 time_scale)
KAPI b8 kmodel_ray_intersects(struct kmodel_system_state *state, kmodel_instance instance, const ray *r, mat4 world, raycast_hit *out_hit)
KAPI void kmodel_instance_seek(struct kmodel_system_state *state, kmodel_instance instance, f32 time)
KAPI const kmaterial_instance * kmodel_submesh_material_instance_get_at(struct kmodel_system_state *state, kmodel_instance instance, u16 index)
struct anim_key_quat anim_key_quat
struct anim_key_vec3 anim_key_vec3
KAPI kmodel_instance kmodel_instance_acquire_from_package(struct kmodel_system_state *state, kname asset_name, kname package_name, PFN_animated_mesh_loaded callback, void *context)
struct kmodel_system_config kmodel_system_config
KAPI b8 kmodel_submesh_count_get(struct kmodel_system_state *state, u16 base_mesh_id, u16 *out_count)
struct kmodel_submesh kmodel_submesh
kmodel_state
Definition: kmodel_system.h:74
@ KMODEL_STATE_LOADING
Definition: kmodel_system.h:80
@ KMODEL_STATE_LOADED
Definition: kmodel_system.h:82
@ KMODEL_STATE_ACQUIRED
Definition: kmodel_system.h:78
@ KMODEL_STATE_UNINITIALIZED
Definition: kmodel_system.h:76
kmodel_type
Definition: kmodel_system.h:16
@ KMODEL_TYPE_STATIC
Definition: kmodel_system.h:17
@ KMODEL_TYPE_ANIMATED
Definition: kmodel_system.h:18
KAPI void kmodel_instance_stop(struct kmodel_system_state *state, kmodel_instance instance)
struct kmodel_channel kmodel_channel
KAPI void kmodel_instance_release(struct kmodel_system_state *state, kmodel_instance *instance)
KAPI kmodel_instance kmodel_instance_acquire(struct kmodel_system_state *state, kname asset_name, PFN_animated_mesh_loaded callback, void *context)
struct kmodel_system_state kmodel_system_state
void kmodel_system_update(kmodel_system_state *state, f32 delta_time, frame_data *p_frame_data)
KAPI u32 kmodel_instance_animation_id_get(struct kmodel_system_state *state, kmodel_instance instance)
void(* PFN_animated_mesh_loaded)(kmodel_instance instance, void *context)
Definition: kmodel_system.h:159
struct kmodel_node kmodel_node
void kmodel_system_frame_prepare(kmodel_system_state *state, frame_data *p_frame_data)
struct kmodel_instance_data kmodel_instance_data
KAPI void kmodel_instance_loop_set(struct kmodel_system_state *state, kmodel_instance instance, b8 loop)
struct kmodel_instance_queue_entry kmodel_instance_queue_entry
#define KANIMATION_MAX_BONES
Definition: kmodel_system.h:13
b8 kmodel_system_initialize(u64 *memory_requirement, kmodel_system_state *memory, const kmodel_system_config *config)
KAPI void kmodel_instance_pause(struct kmodel_system_state *state, kmodel_instance instance)
struct kmodel_instance kmodel_instance
struct kmodel_animation kmodel_animation
struct kmodel_bone kmodel_bone
struct kmodel_animator kmodel_animator
KAPI void kmodel_instance_seek_percent(struct kmodel_system_state *state, kmodel_instance instance, f32 percent)
kmodel_instance_state
Definition: kmodel_system.h:85
@ KMODEL_INSTANCE_STATE_ACQUIRED
Definition: kmodel_system.h:87
@ KMODEL_INSTANCE_STATE_UNINITIALIZED
Definition: kmodel_system.h:86
void kmodel_system_shutdown(kmodel_system_state *state)
kmodel_animator_state
Definition: kmodel_system.h:94
@ KMODEL_ANIMATOR_STATE_PAUSED
Definition: kmodel_system.h:97
@ KMODEL_ANIMATOR_STATE_STOPPED
Definition: kmodel_system.h:95
@ KMODEL_ANIMATOR_STATE_PLAYING
Definition: kmodel_system.h:96
struct kmodel_base kmodel_base
This files contains an implementation of knames.
u64 kname
A kname is a string hash made for quick comparisons versus traditional string comparisons.
Definition: kname.h:36
Contains various math types required for the engine.
u16 krenderbuffer
Definition: renderer_types.h:175
Definition: kmodel_system.h:26
quat value
Definition: kmodel_system.h:27
f32 time
Definition: kmodel_system.h:28
Definition: kmodel_system.h:21
f32 time
Definition: kmodel_system.h:23
vec3 value
Definition: kmodel_system.h:22
Engine-level current frame-specific data.
Definition: frame_data.h:15
Represents geometry to be used for various purposes (rendering objects in the world,...
Definition: geometry.h:41
A material instance, which contains handles to both the base material as well as the instance itself....
Definition: core_render_types.h:409
Definition: kmodel_system.h:90
mat4 final_bone_matrices[KANIMATION_MAX_BONES]
Definition: kmodel_system.h:91
Definition: kmodel_system.h:43
kname name
Definition: kmodel_system.h:44
kmodel_channel * channels
Definition: kmodel_system.h:48
f32 ticks_per_second
Definition: kmodel_system.h:46
u32 channel_count
Definition: kmodel_system.h:47
f32 duration
Definition: kmodel_system.h:45
Definition: kmodel_system.h:101
u16 current_animation
Definition: kmodel_system.h:107
kname name
Definition: kmodel_system.h:102
u32 max_bones
Definition: kmodel_system.h:115
u16 base
Definition: kmodel_system.h:104
f32 time_in_ticks
Definition: kmodel_system.h:108
kmodel_animation_shader_data * shader_data
Definition: kmodel_system.h:114
kname current_animation_name
Definition: kmodel_system.h:105
u32 shader_data_index
Definition: kmodel_system.h:113
kmodel_animator_state state
Definition: kmodel_system.h:111
b8 loop
Definition: kmodel_system.h:110
f32 time_scale
Definition: kmodel_system.h:109
Definition: kmodel_system.h:126
kmodel_node * nodes
Definition: kmodel_system.h:137
kmodel_type type
Definition: kmodel_system.h:128
u32 bone_count
Definition: kmodel_system.h:134
kname asset_name
Definition: kmodel_system.h:129
kmodel_submesh * meshes
Definition: kmodel_system.h:141
mat4 global_inverse_transform
Definition: kmodel_system.h:138
u32 node_count
Definition: kmodel_system.h:136
kname package_name
Definition: kmodel_system.h:130
kmodel_instance_data * instances
Definition: kmodel_system.h:145
kmodel_animation * animations
Definition: kmodel_system.h:133
kmodel_bone * bones
Definition: kmodel_system.h:135
u32 instance_count
Definition: kmodel_system.h:143
u16 id
Definition: kmodel_system.h:127
u32 submesh_count
Definition: kmodel_system.h:140
u32 animation_count
Definition: kmodel_system.h:132
Definition: kmodel_system.h:52
kname name
Definition: kmodel_system.h:53
mat4 offset
Definition: kmodel_system.h:55
u32 id
Definition: kmodel_system.h:57
Definition: kmodel_system.h:32
anim_key_vec3 * scales
Definition: kmodel_system.h:37
anim_key_quat * rotations
Definition: kmodel_system.h:39
kname name
Definition: kmodel_system.h:33
anim_key_vec3 * positions
Definition: kmodel_system.h:35
u32 rot_count
Definition: kmodel_system.h:38
u32 scale_count
Definition: kmodel_system.h:36
u32 pos_count
Definition: kmodel_system.h:34
Definition: kmodel_system.h:118
kmodel_animator animator
Definition: kmodel_system.h:120
kmodel_instance_state state
Definition: kmodel_system.h:119
kmaterial_instance * materials
Definition: kmodel_system.h:122
Definition: kmodel_system.h:161
u16 base_mesh_id
Definition: kmodel_system.h:162
void * context
Definition: kmodel_system.h:165
u16 instance_id
Definition: kmodel_system.h:163
PFN_animated_mesh_loaded callback
Definition: kmodel_system.h:164
Definition: kmodel_system.h:148
u16 base_mesh
Definition: kmodel_system.h:149
u16 instance
Definition: kmodel_system.h:150
Definition: kmodel_system.h:60
kname name
Definition: kmodel_system.h:61
u16 child_count
Definition: kmodel_system.h:64
u16 * children
Definition: kmodel_system.h:65
u16 parent_index
Definition: kmodel_system.h:63
mat4 local_transform
Definition: kmodel_system.h:62
Definition: kmodel_system.h:68
kname material_name
Definition: kmodel_system.h:71
kname name
Definition: kmodel_system.h:69
kgeometry geo
Definition: kmodel_system.h:70
Definition: kmodel_system.h:153
u16 max_instance_count
Definition: kmodel_system.h:156
kname default_application_package_name
Definition: kmodel_system.h:154
Definition: kmodel_system.h:168
kmodel_animation_shader_data * shader_data
Definition: kmodel_system.h:187
u16 max_instance_count
Definition: kmodel_system.h:171
kmodel_instance_queue_entry * instance_queue
Definition: kmodel_system.h:183
kmodel_base * models
Definition: kmodel_system.h:177
pool_allocator shader_data_pool
Definition: kmodel_system.h:186
u32 max_mesh_count
Definition: kmodel_system.h:176
f32 global_time_scale
Definition: kmodel_system.h:173
kname default_application_package_name
Definition: kmodel_system.h:169
kmodel_state * states
Definition: kmodel_system.h:178
krenderbuffer global_animation_ssbo
Definition: kmodel_system.h:180
Definition: pool_allocator.h:10
Represents a line which starts at an origin and proceed infinitely in the given direction....
Definition: math_types.h:638
Definition: math_types.h:652
a 4x4 matrix, typically used to represent object transformations.
Definition: math_types.h:383
A 3-element vector.
Definition: math_types.h:117
A 4-element vector.
Definition: math_types.h:229