build system revision
[vg.git] / labs / physics.c
index 7373660b9fcac4dc9bba1c116b5e693e03badb28..c570a31d235c18f600c0874ee32ad90fff1daf0a 100644 (file)
@@ -1,23 +1,13 @@
-#define VG_GAME
-#define VG_AUDIO_FORCE_COMPRESSED
-#define VG_3D
-#define VG_LOG_SOURCE_INFO
-#define VG_TIMESTEP_FIXED (1.0/60.0)
-
-#ifndef VG_RELEASE
- #define VG_DEVWINDOW
-#endif
-
-#define SDL_MAIN_HANDLED
-
-#define VG_MAX_CONTACTS 2048
-
-#include "vg/vg.h"
+#include "vg/vg_engine.h"
+#include "vg/vg_opt.h"
+#include "vg/vg_audio.h"
 #include "vg/vg_camera.h"
 #include "vg/vg_rigidbody.h"
 #include "vg/vg_rigidbody_collision.h"
+#include "vg/vg_rigidbody_view.h"
 #include "vg/vg_profiler.h"
 #include "vg/vg_bvh.h"
+#include "vg/vg_input.h"
 
 #define SHAPE_MAX 256
 static rigidbody shapes[SHAPE_MAX];
@@ -105,15 +95,17 @@ int main( int argc, char *argv[] ){
    return 0;
 }
 
-static void vg_launch_opt(void){
+void vg_launch_opt(void){
    const char *arg;
 }
 
-static void vg_preload(void){
+void vg_preload(void)
+{
    vg_audio.dsp_enabled = 0;
 }
 
-static void init_random(void){
+static void init_random(void)
+{
    for( u32 i=0; i<(u32)k_shapes; i ++ ){
       f32 h  = vg_randf64( &vg.rand ) * 2.0f + 1.3f,
           r  = vg_randf64( &vg.rand ) * 0.5f + 0.125f,
@@ -181,7 +173,8 @@ static void reset_racket(void){
    rb_update_matrices( &racket );
 }
 
-static void vg_load(void){
+void vg_load(void)
+{
    vg_bake_shaders();
    init_random();
    shape_bvh_tree = bh_create( NULL, &shape_bvh, NULL, SHAPE_MAX, 1 );
@@ -189,7 +182,8 @@ static void vg_load(void){
    reset_racket();
 }
 
-static void vg_pre_update(void){
+void vg_pre_update(void)
+{
    vg_console.cheats =  1;
    vg_lines.render = 1;
 }
@@ -343,7 +337,8 @@ static void demo0(void){
    vg_profile_increment( &prof_narrow );
 
    vg_profile_begin( &prof_solve );
-   rb_presolve_contacts( rb_contact_buffer, rb_contact_count );
+   rb_presolve_contacts( rb_contact_buffer, 
+                         vg.time_fixed_delta, rb_contact_count );
    for( u32 i=0; i<(u32)k_iterations; i ++ )
       rb_solve_contacts( rb_contact_buffer, rb_contact_count );
 
@@ -377,17 +372,20 @@ static void demo1(void){
    vg_profile_end( &prof_solve );
 }
 
-static void vg_fixed_update(void){
+void vg_fixed_update(void)
+{
    if( k_demo == 0 ) demo0();
    else if( k_demo == 1 ) demo1();
 }
 
-static void vg_post_update(void){
+void vg_post_update(void)
+{
    if( vg_getkey( SDLK_8 ) )
       init_random();
 }
 
-static void vg_framebuffer_resize( int w, int h ){
+void vg_framebuffer_resize( int w, int h )
+{
 }
 
 static void draw_origin_axis(void){
@@ -444,7 +442,8 @@ static void render1(void){
    vg_rb_view_capsule( mmdl, racket_cb.r, racket_cb.h, (v4f){0,1,0,1} );
 }
 
-static void vg_render(void){
+void vg_render(void)
+{
    glBindFramebuffer( GL_FRAMEBUFFER, 0 );
    glViewport( 0,0, vg.window_x, vg.window_y );
    glEnable( GL_DEPTH_TEST );
@@ -537,7 +536,8 @@ static void gui1( ui_rect panel ){
    }
 }
 
-static void vg_gui(void){
+void vg_gui(void)
+{
    vg_ui.wants_mouse = 1;
    ui_rect panel = { vg.window_x-300, 0, 300, vg.window_y };
    ui_rect_pad( panel, (ui_px[2]){ 8, 8 } );