6 #include "shaders/viewchar.h"
10 struct skeleton skele
;
11 struct skeleton_anim
*yay
;
17 static void anim_test_start(void)
19 mdl_header
*johannes
= mdl_load( "models/ch_new.mdl" );
20 skeleton_setup( &animtest
.skele
, johannes
);
21 animtest
.yay
= skeleton_get_anim( &animtest
.skele
, "pose_stand" );
22 mdl_unpack_glmesh( johannes
, &animtest
.mesh
);
27 static void anim_test_update(void)
30 player_camera_update();
33 m4x3_identity( transform
);
36 q_axis_angle( qt
, (v3f
){0.0f
,1.0f
,0.0f
}, vg_time
*1.2f
);
37 q_m3x3( qt
, transform
);
39 skeleton_apply_frame( transform
, &animtest
.skele
, animtest
.yay
, vg_time
);
40 skeleton_apply_ik_pass( &animtest
.skele
);
42 skeleton_debug( &animtest
.skele
);
45 static void anim_test_render( vg_tex2d
*tex
)
48 m4x3_expand( player
.camera_inverse
, world_4x4
);
50 gpipeline
.fov
= 60.0f
;
51 m4x4_projection( vg_pv
, gpipeline
.fov
,
52 (float)vg_window_x
/ (float)vg_window_y
,
55 m4x4_mul( vg_pv
, world_4x4
, vg_pv
);
56 glEnable( GL_DEPTH_TEST
);
58 shader_viewchar_use();
59 vg_tex2d_bind( tex
, 0 );
60 shader_viewchar_uTexMain( 0 );
61 shader_viewchar_uPv( vg_pv
);
62 glUniformMatrix4x3fv( _uniform_viewchar_uTransforms
,
63 animtest
.skele
.bone_count
,
65 (float *)animtest
.skele
.final_transforms
);
67 mesh_bind( &animtest
.mesh
);
68 mesh_draw( &animtest
.mesh
);
70 glDisable( GL_DEPTH_TEST
);
71 vg_lines_drawall( (float *)vg_pv
);
74 #endif /* ANIM_TEST_H */