move location of main camera to g_render
authorhgn <hgodden00@gmail.com>
Thu, 13 Jun 2024 08:54:34 +0000 (09:54 +0100)
committerhgn <hgodden00@gmail.com>
Thu, 13 Jun 2024 08:54:34 +0000 (09:54 +0100)
18 files changed:
depth_compare.h
ent_miniworld.c
ent_skateshop.c
font.h
network.c
player.c
player_glide.c
player_remote.c
player_replay.c
render.c
render.h
skaterift.c
skaterift.h
vehicle.c
workshop.c
world_entity.c
world_render.c
world_water.c

index 28e949669760bfbf39738a015df0fc455e2b33e6..1db5665a7bd15992a9562c97fff8d86d97b2e5b2 100644 (file)
@@ -11,10 +11,10 @@ static inline void depth_compare_bind(
       vg_camera *cam )
 {
    uTexSceneDepth( 5 );
-   vg_framebuffer_bind_texture( gpipeline.fb_main, 2, 5 );
+   vg_framebuffer_bind_texture( g_render.fb_main, 2, 5 );
    v3f inverse;
-   vg_framebuffer_inverse_ratio( gpipeline.fb_main, inverse );
-   inverse[2] = skaterift.cam.farz-skaterift.cam.nearz;
+   vg_framebuffer_inverse_ratio( g_render.fb_main, inverse );
+   inverse[2] = g_render.cam.farz-g_render.cam.nearz;
 
    uInverseRatioDepth( inverse );
    vg_framebuffer_inverse_ratio( NULL, inverse );
index 40fac190fc72e5f0633979b75230639ecfcbb5a2..19c88d0dcac8eb22b7bcaba508e8ff2e6f01b51b 100644 (file)
@@ -184,7 +184,7 @@ void ent_miniworld_preupdate(void)
 
       global_miniworld.transition = 1;
       global_miniworld.t = 0.0f;
-      global_miniworld.cam = skaterift.cam;
+      global_miniworld.cam = g_render.cam;
 
       world_switch_instance(1);
       srinput.state = k_input_state_resume;
@@ -205,7 +205,7 @@ void ent_miniworld_goback(void)
    global_miniworld.transition = -1;
    global_miniworld.t = 1.0f;
 
-   global_miniworld.cam = skaterift.cam;
+   global_miniworld.cam = g_render.cam;
    vg_m4x3_transform_camera( global_miniworld.mmdl, &global_miniworld.cam );
    world_switch_instance(0);
 }
index 7b41857f38e71228bfbb3ff4403d33a8d5beaf6e..f2b4a176448c1e64b589e0093bb223bf4b4a4bb8 100644 (file)
@@ -490,7 +490,7 @@ static void skateshop_render_boardshop( ent_skateshop *shop ){
       struct player_board_pose pose = {0};
       m4x3f mmdl;
       mdl_transform_m4x3( &xform, mmdl );
-      render_board( &skaterift.cam, world, board, mmdl, 
+      render_board( &g_render.cam, world, board, mmdl, 
                     &pose, k_board_shader_entity );
 
 fade_out:;
@@ -510,7 +510,7 @@ fade_out:;
    float scale = 0.2f,
          thickness = 0.03f;
 
-   font3d_bind( &gui.font, k_font_shader_default, 0, world, &skaterift.cam );
+   font3d_bind( &gui.font, k_font_shader_default, 0, world, &g_render.cam );
    shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} );
 
    /* Selection counter
@@ -531,10 +531,10 @@ fade_out:;
       vg_strcati32( &str, global_skateshop.selected_board_id+1 );
       vg_strcatch( &str, '/' );
       vg_strcati32( &str, valid_count );
-      font3d_simple_draw( 0, buf, &skaterift.cam, mmdl );
+      font3d_simple_draw( 0, buf, &g_render.cam, mmdl );
    }
    else{
-      font3d_simple_draw( 0, "Nothing installed", &skaterift.cam, mmdl );
+      font3d_simple_draw( 0, "Nothing installed", &g_render.cam, mmdl );
    }
 
    u16 cache_id = skateshop_selected_cache_id();
@@ -578,7 +578,7 @@ fade_out:;
    mlocal[3][2] = 0.0f;
    m4x3_mul( mtext, mlocal, mmdl );
    font3d_simple_draw( 0, global_skateshop.render.item_title, 
-                       &skaterift.cam, mmdl );
+                       &g_render.cam, mmdl );
 
    /* Author name
     * ----------------------------------------------------------------- */
@@ -590,7 +590,7 @@ fade_out:;
    mlocal[3][2] = 0.0f;
    m4x3_mul( mtext, mlocal, mmdl );
    font3d_simple_draw( 0, global_skateshop.render.item_desc, 
-                       &skaterift.cam, mmdl );
+                       &g_render.cam, mmdl );
 
    SDL_AtomicUnlock( &addon_system.sl_cache_using_resources );
 }
@@ -677,7 +677,7 @@ none:;
    m4x3f mtext,mlocal,mtextmdl;
    mdl_transform_m4x3( &mark_info->transform, mtext );
 
-   font3d_bind( &gui.font, k_font_shader_default, 0, NULL, &skaterift.cam );
+   font3d_bind( &gui.font, k_font_shader_default, 0, NULL, &g_render.cam );
    shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} );
 
    float scale = 0.2f, thickness = 0.015f, scale1 = 0.08f;
@@ -688,14 +688,14 @@ none:;
    mlocal[3][1] = 0.1f;
    mlocal[3][2] = 0.0f;
    m4x3_mul( mtext, mlocal, mtextmdl );
-   font3d_simple_draw( 0, buftext, &skaterift.cam, mtextmdl );
+   font3d_simple_draw( 0, buftext, &g_render.cam, mtextmdl );
 
    m3x3_setdiagonalv3( mlocal, (v3f){ scale1, scale1, thickness } );
    mlocal[3][0] = -font3d_string_width( 0, bufsubtext );
    mlocal[3][0] *= scale1*0.5f;
    mlocal[3][1] = -scale1*0.3f;
    m4x3_mul( mtext, mlocal, mtextmdl );
-   font3d_simple_draw( 0, bufsubtext, &skaterift.cam, mtextmdl );
+   font3d_simple_draw( 0, bufsubtext, &g_render.cam, mtextmdl );
 }
 
 /*
diff --git a/font.h b/font.h
index 15ecde6de3bd1b18ebc61e2506411b23477180bc..fa144c40576a8c5079dc930b04ea12aea2ceb225 100644 (file)
--- a/font.h
+++ b/font.h
@@ -166,13 +166,13 @@ static void font3d_bind( font3d *font, enum font_shader shader,
       shader_scene_font_uTexGarbage(0);
       shader_scene_font_uTexMain(1);
 
-      shader_scene_font_uPv( skaterift.cam.mtx.pv );
+      shader_scene_font_uPv( g_render.cam.mtx.pv );
       shader_scene_font_uTime( vg.time );
 
       WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( world, scene_font );
 
       bind_terrain_noise();
-      shader_scene_font_uCamera( skaterift.cam.transform[3] );
+      shader_scene_font_uCamera( g_render.cam.transform[3] );
    }
    mesh_bind( &font->mesh );
 }
index dd90edd7d287a6b6c441a72fe87ac8a9bb84e081..6d6178e2a9b6fb9adf8218d3d417f5566e81a6f3 100644 (file)
--- a/network.c
+++ b/network.c
@@ -372,7 +372,7 @@ void network_status_string( vg_str *str, u32 *colour )
 
 void render_server_status_gui(void)
 {
-   vg_framebuffer_bind( gpipeline.fb_network_status, 1.0f );
+   vg_framebuffer_bind( g_render.fb_network_status, 1.0f );
 
    vg_ui_set_screen( 128, 48 );
    ui_context *ctx = &vg_ui.ctx;
@@ -397,7 +397,7 @@ void render_server_status_gui(void)
    ui_flush( ctx, k_ui_shader_colour, NULL );
    
    skaterift.rt_textures[ k_skaterift_rt_server_status ] =
-      gpipeline.fb_network_status->attachments[0].id;
+      g_render.fb_network_status->attachments[0].id;
 }
 
 static void on_server_connect_status( CallbackMsg_t *msg ){
index b200a78ac65009bafe5f97d0c4d054dce96b918a..ff3e6dd784ceb13027741db69a428b2d4079106d 100644 (file)
--- a/player.c
+++ b/player.c
@@ -225,8 +225,8 @@ void player_apply_transport_to_cam( m4x3f transport )
    m4x4f transport_4;
    m4x3_invert_affine( transport, transport_i );
    m4x3_expand( transport_i, transport_4 );
-   m4x4_mul( skaterift.cam.mtx.pv, transport_4, skaterift.cam.mtx.pv );
-   m4x4_mul( skaterift.cam.mtx.v,  transport_4, skaterift.cam.mtx.v );
+   m4x4_mul( g_render.cam.mtx.pv, transport_4, g_render.cam.mtx.pv );
+   m4x4_mul( g_render.cam.mtx.v,  transport_4, g_render.cam.mtx.v );
 
    /* we want the regular transform here no the inversion */
    m4x3_expand( transport, transport_4 );
index 5df05e3db61bd7047738ab7a109530851c82475f..3cbcb28041470de213dd49074550b952dda4e462 100644 (file)
@@ -701,6 +701,6 @@ void player_glide_render_effects( vg_camera *cam )
                            localplayer.rb.to_world[1], alpha );
                            
       trail_system_prerender( &trails_glider[i] );
-      trail_system_render( &trails_glider[i], &skaterift.cam );
+      trail_system_render( &trails_glider[i], &g_render.cam );
    }
 }
index 44d28b2d6e889d61ee530ad949de0a13278117e9..e8ca56c62cb65d4e98ccfccc8bfe368f6f0687dc 100644 (file)
@@ -1084,10 +1084,10 @@ void remote_players_imgui_world( ui_context *ctx,
             hit.dist = dist;
 
             v3f dir;
-            v3_sub( co, skaterift.cam.pos, dir );
+            v3_sub( co, g_render.cam.pos, dir );
             v3_normalize( dir );
 
-            if( ray_world( world, skaterift.cam.pos, dir, &hit, 
+            if( ray_world( world, g_render.cam.pos, dir, &hit, 
                            k_material_flag_ghosts ) ){
                opacity *= 0.5f;
             }
index 428c03814e52b8161673a267d2981f4329c66fea..0db1ca4d665822b8251555d62b5289c412e89c97 100644 (file)
@@ -856,13 +856,13 @@ static void replay_fly_edit_keyframe( ui_context *ctx, replay_keyframe *kf )
    if( vg_getkey(SDLK_e) )
       player_replay.freecam_v[1] += vg.time_frame_delta*6.0f*20.0f;
 
-   v3_copy( player_replay.replay_freecam.pos, skaterift.cam.pos );
-   v3_copy( player_replay.replay_freecam.angles, skaterift.cam.angles);
-   skaterift.cam.fov = player_replay.replay_freecam.fov;
+   v3_copy( player_replay.replay_freecam.pos, g_render.cam.pos );
+   v3_copy( player_replay.replay_freecam.angles, g_render.cam.angles);
+   g_render.cam.fov = player_replay.replay_freecam.fov;
 
-   v3_copy( skaterift.cam.pos, kf->cam.pos );
-   v3_copy( skaterift.cam.angles, kf->cam.angles );
-   kf->cam.fov = skaterift.cam.fov;
+   v3_copy( g_render.cam.pos, kf->cam.pos );
+   v3_copy( g_render.cam.angles, kf->cam.angles );
+   kf->cam.fov = g_render.cam.fov;
 }
 
 void skaterift_replay_imgui( ui_context *ctx )
@@ -1135,9 +1135,9 @@ void skaterift_replay_imgui( ui_context *ctx )
                &player_replay.keyframes[player_replay.keyframe_count++];
 
             kf->time = mouse_t;
-            v3_copy( skaterift.cam.pos, kf->cam.pos );
-            v3_copy( skaterift.cam.angles, kf->cam.angles );
-            kf->cam.fov = skaterift.cam.fov;
+            v3_copy( g_render.cam.pos, kf->cam.pos );
+            v3_copy( g_render.cam.angles, kf->cam.angles );
+            kf->cam.fov = g_render.cam.fov;
 
             replay_keyframe_sort();
          }
index ec2e0ef37eb9ed1518a20f79c25e95425e8f7f90..aa0cfab94382879a76431ac31b3d1858413f754c 100644 (file)
--- a/render.c
+++ b/render.c
@@ -43,12 +43,12 @@ static void async_render_init( void *payload, u32 size )
       0.00f,ih, 1.00f,ih,    1.00f,ih+rh,
    };
 
-   glGenVertexArrays( 1, &gpipeline.fsquad.vao );
-   glGenBuffers( 1, &gpipeline.fsquad.vbo );
-   glBindVertexArray( gpipeline.fsquad.vao );
-   glBindBuffer( GL_ARRAY_BUFFER, gpipeline.fsquad.vbo );
+   glGenVertexArrays( 1, &g_render.fsquad.vao );
+   glGenBuffers( 1, &g_render.fsquad.vbo );
+   glBindVertexArray( g_render.fsquad.vao );
+   glBindBuffer( GL_ARRAY_BUFFER, g_render.fsquad.vbo );
    glBufferData( GL_ARRAY_BUFFER, sizeof(quad), quad, GL_STATIC_DRAW );
-   glBindVertexArray( gpipeline.fsquad.vao );
+   glBindVertexArray( g_render.fsquad.vao );
    glVertexAttribPointer( 0, 2, GL_FLOAT, GL_FALSE, 
                           sizeof(float)*2, (void*)0 );
    glEnableVertexAttribArray( 0 );
@@ -56,7 +56,7 @@ static void async_render_init( void *payload, u32 size )
    VG_CHECK_GL_ERR();
 
    glBindFramebuffer( GL_FRAMEBUFFER, 0 );
-   gpipeline.ready = 1;
+   g_render.ready = 1;
 }
 
 void render_init(void)
@@ -75,10 +75,10 @@ void render_init(void)
    /* 
     * Main framebuffer
     */
-   gpipeline.fb_main = vg_framebuffer_allocate( alloc, 3, 1 );
-   gpipeline.fb_main->display_name = "main";
-   gpipeline.fb_main->resolution_div = 1;
-   gpipeline.fb_main->attachments[0] = (vg_framebuffer_attachment)
+   g_render.fb_main = vg_framebuffer_allocate( alloc, 3, 1 );
+   g_render.fb_main->display_name = "main";
+   g_render.fb_main->resolution_div = 1;
+   g_render.fb_main->attachments[0] = (vg_framebuffer_attachment)
    {
       "colour", k_framebuffer_attachment_type_texture,
 
@@ -87,7 +87,7 @@ void render_init(void)
       .type           = GL_UNSIGNED_BYTE,
       .attachment     = GL_COLOR_ATTACHMENT0
    };
-   gpipeline.fb_main->attachments[1] = (vg_framebuffer_attachment)
+   g_render.fb_main->attachments[1] = (vg_framebuffer_attachment)
    {
       "motion", k_framebuffer_attachment_type_texture,
 
@@ -97,7 +97,7 @@ void render_init(void)
       .type           = GL_FLOAT,
       .attachment     = GL_COLOR_ATTACHMENT1
    };
-   gpipeline.fb_main->attachments[2] = (vg_framebuffer_attachment)
+   g_render.fb_main->attachments[2] = (vg_framebuffer_attachment)
    {
       "depth_stencil", k_framebuffer_attachment_type_texture_depth,
       .internalformat = GL_DEPTH24_STENCIL8,
@@ -105,15 +105,15 @@ void render_init(void)
       .type           = GL_UNSIGNED_INT_24_8,
       .attachment     = GL_DEPTH_STENCIL_ATTACHMENT
    };
-   vg_framebuffer_create( gpipeline.fb_main );
+   vg_framebuffer_create( g_render.fb_main );
    
    /* 
     * Water reflection
     */
-   gpipeline.fb_water_reflection = vg_framebuffer_allocate( alloc, 2, 1 );
-   gpipeline.fb_water_reflection->display_name = "water_reflection";
-   gpipeline.fb_water_reflection->resolution_div = 2;
-   gpipeline.fb_water_reflection->attachments[0] = (vg_framebuffer_attachment) 
+   g_render.fb_water_reflection = vg_framebuffer_allocate( alloc, 2, 1 );
+   g_render.fb_water_reflection->display_name = "water_reflection";
+   g_render.fb_water_reflection->resolution_div = 2;
+   g_render.fb_water_reflection->attachments[0] = (vg_framebuffer_attachment) 
    {
       "colour", k_framebuffer_attachment_type_texture,
       .internalformat = GL_RGB,
@@ -121,22 +121,22 @@ void render_init(void)
       .type           = GL_UNSIGNED_BYTE,
       .attachment     = GL_COLOR_ATTACHMENT0
    };
-   gpipeline.fb_water_reflection->attachments[1] = (vg_framebuffer_attachment) 
+   g_render.fb_water_reflection->attachments[1] = (vg_framebuffer_attachment) 
    {
       "depth_stencil", k_framebuffer_attachment_type_renderbuffer,
       .internalformat = GL_DEPTH24_STENCIL8,
       .attachment     = GL_DEPTH_STENCIL_ATTACHMENT
    };
-   vg_framebuffer_create( gpipeline.fb_water_reflection );
+   vg_framebuffer_create( g_render.fb_water_reflection );
 
    /*
     * Thid rendered view from the perspective of the camera, but just 
     * captures stuff thats under the water
     */
-   gpipeline.fb_water_beneath = vg_framebuffer_allocate( alloc, 2, 1 );
-   gpipeline.fb_water_beneath->display_name = "water_beneath";
-   gpipeline.fb_water_beneath->resolution_div = 2;
-   gpipeline.fb_water_beneath->attachments[0] = (vg_framebuffer_attachment) 
+   g_render.fb_water_beneath = vg_framebuffer_allocate( alloc, 2, 1 );
+   g_render.fb_water_beneath->display_name = "water_beneath";
+   g_render.fb_water_beneath->resolution_div = 2;
+   g_render.fb_water_beneath->attachments[0] = (vg_framebuffer_attachment) 
    {
       "colour", k_framebuffer_attachment_type_texture,
       .internalformat = GL_RED,
@@ -144,23 +144,23 @@ void render_init(void)
       .type           = GL_UNSIGNED_BYTE,
       .attachment     = GL_COLOR_ATTACHMENT0
    };
-   gpipeline.fb_water_beneath->attachments[1] = (vg_framebuffer_attachment) 
+   g_render.fb_water_beneath->attachments[1] = (vg_framebuffer_attachment) 
    {
       "depth_stencil", k_framebuffer_attachment_type_renderbuffer,
       .internalformat = GL_DEPTH24_STENCIL8,
       .attachment     = GL_DEPTH_STENCIL_ATTACHMENT
    };
-   vg_framebuffer_create( gpipeline.fb_water_beneath );
+   vg_framebuffer_create( g_render.fb_water_beneath );
 
    /* 
     * Workshop preview
     */
-   gpipeline.fb_workshop_preview = vg_framebuffer_allocate( alloc, 2, 1 );
-   gpipeline.fb_workshop_preview->display_name = "workshop_preview";
-   gpipeline.fb_workshop_preview->resolution_div = 0;
-   gpipeline.fb_workshop_preview->fixed_w = WORKSHOP_PREVIEW_WIDTH;
-   gpipeline.fb_workshop_preview->fixed_h = WORKSHOP_PREVIEW_HEIGHT;
-   gpipeline.fb_workshop_preview->attachments[0] = (vg_framebuffer_attachment) 
+   g_render.fb_workshop_preview = vg_framebuffer_allocate( alloc, 2, 1 );
+   g_render.fb_workshop_preview->display_name = "workshop_preview";
+   g_render.fb_workshop_preview->resolution_div = 0;
+   g_render.fb_workshop_preview->fixed_w = WORKSHOP_PREVIEW_WIDTH;
+   g_render.fb_workshop_preview->fixed_h = WORKSHOP_PREVIEW_HEIGHT;
+   g_render.fb_workshop_preview->attachments[0] = (vg_framebuffer_attachment) 
    {
       "colour", k_framebuffer_attachment_type_texture,
       .internalformat = GL_RGB,
@@ -168,23 +168,23 @@ void render_init(void)
       .type           = GL_UNSIGNED_BYTE,
       .attachment     = GL_COLOR_ATTACHMENT0
    };
-   gpipeline.fb_workshop_preview->attachments[1] = (vg_framebuffer_attachment) 
+   g_render.fb_workshop_preview->attachments[1] = (vg_framebuffer_attachment) 
    {
       "depth_stencil", k_framebuffer_attachment_type_renderbuffer,
       .internalformat = GL_DEPTH24_STENCIL8,
       .attachment = GL_DEPTH_STENCIL_ATTACHMENT
    };
-   vg_framebuffer_create( gpipeline.fb_workshop_preview );
+   vg_framebuffer_create( g_render.fb_workshop_preview );
    
    /*
     * Network status
     */
-   gpipeline.fb_network_status = vg_framebuffer_allocate( alloc, 1, 1 );
-   gpipeline.fb_network_status->display_name = "network_status_ui";
-   gpipeline.fb_network_status->resolution_div = 0;
-   gpipeline.fb_network_status->fixed_w = 128;
-   gpipeline.fb_network_status->fixed_h = 48;
-   gpipeline.fb_network_status->attachments[0] = (vg_framebuffer_attachment) 
+   g_render.fb_network_status = vg_framebuffer_allocate( alloc, 1, 1 );
+   g_render.fb_network_status->display_name = "network_status_ui";
+   g_render.fb_network_status->resolution_div = 0;
+   g_render.fb_network_status->fixed_w = 128;
+   g_render.fb_network_status->fixed_h = 48;
+   g_render.fb_network_status->attachments[0] = (vg_framebuffer_attachment) 
    {
       "colour", k_framebuffer_attachment_type_texture,
       .internalformat = GL_RGB,
@@ -192,7 +192,7 @@ void render_init(void)
       .type           = GL_UNSIGNED_BYTE,
       .attachment     = GL_COLOR_ATTACHMENT0
    };
-   vg_framebuffer_create( gpipeline.fb_network_status );
+   vg_framebuffer_create( g_render.fb_network_status );
 
    vg_async_call( async_render_init, NULL, 0 );
 }
@@ -202,19 +202,19 @@ void render_init(void)
  */
 void render_fsquad(void)
 {
-   glBindVertexArray( gpipeline.fsquad.vao );
+   glBindVertexArray( g_render.fsquad.vao );
    glDrawArrays( GL_TRIANGLES, 0, 6 );
 }
 
 void render_fsquad1(void)
 {
-   glBindVertexArray( gpipeline.fsquad.vao );
+   glBindVertexArray( g_render.fsquad.vao );
    glDrawArrays( GL_TRIANGLES, 6, 6+6 );
 }
 
 void render_fsquad2(void)
 {
-   glBindVertexArray( gpipeline.fsquad.vao );
+   glBindVertexArray( g_render.fsquad.vao );
    glDrawArrays( GL_TRIANGLES, 66+6,6 );
 }
 
@@ -243,12 +243,13 @@ void postprocess_to_screen( vg_framebuffer *fb )
       inverse[0] -= 0.0001f;
       inverse[1] -= 0.0001f;
       shader_blitblur_uClampUv( inverse );
-      shader_blitblur_uOverrideDir( gpipeline.blur_override );
+      shader_blitblur_uOverrideDir( g_render.blur_override );
 
       vg_framebuffer_bind_texture( fb, 0, 0 );
       vg_framebuffer_bind_texture( fb, 1, 1 );
    }
-   else{
+   else
+   {
       shader_blit_use();
       shader_blit_uTexMain( 0 );
       shader_blit_uInverseRatio( inverse );
index 4986316bdded4b6976ba6a8e8f58e6f804522e73..c5a08804577f727f9de728633e03fe5bd11e968d 100644 (file)
--- a/render.h
+++ b/render.h
@@ -37,8 +37,9 @@ struct pipeline
    int ready;
 
    v2f blur_override;
+   vg_camera cam;
 }
-static gpipeline;
+static g_render;
 
 void render_init(void);
 void render_fsquad(void);
index f99f8761d8d593a11e551cd1cb7c8791329eb33a..87118fc3bef036da79d55138bb10e71dc80fd008 100644 (file)
@@ -353,9 +353,9 @@ void vg_post_update(void)
    vg_dsp.echo_distances[sample_index] = dist;
 
    v3f ears = { 1.0f,0.0f,0.0f };
-   m3x3_mulv( skaterift.cam.transform, ears, ears );
+   m3x3_mulv( g_render.cam.transform, ears, ears );
    v3_copy( ears, vg_audio.external_listener_ears );
-   v3_copy( skaterift.cam.transform[3], vg_audio.external_listener_pos );
+   v3_copy( g_render.cam.transform[3], vg_audio.external_listener_pos );
 
    if( localplayer.gate_waiting ){
       m4x3_mulv( localplayer.gate_waiting->transport,
@@ -386,9 +386,9 @@ static void render_player_transparent(void)
    static vg_camera small_cam;      /* DOES NOT NEED TO BE STATIC BUT MINGW 
                                     SAIS OTHERWISE */
 
-   m4x3_copy( skaterift.cam.transform, small_cam.transform );
+   m4x3_copy( g_render.cam.transform, small_cam.transform );
 
-   small_cam.fov = skaterift.cam.fov;
+   small_cam.fov = g_render.cam.fov;
    small_cam.nearz = 0.05f;
    small_cam.farz  = 60.0f;
 
@@ -454,27 +454,27 @@ static void render_scene(void)
 
       m4x3f identity;
       m4x3_identity( identity );
-      render_world_override( world, world, identity, &skaterift.cam, 
+      render_world_override( world, world, identity, &g_render.cam, 
                              world_map.close_spawn, 
                              (v4f){world->tar_min, world->tar_max, 1.0f, 0.0f});
-      render_world_routes( world, world, identity, &skaterift.cam, 0, 1 );
+      render_world_routes( world, world, identity, &g_render.cam, 0, 1 );
       return;
    }
 
    world_instance *view_world = get_view_world();
-   render_world( view_world, &skaterift.cam, 0, 0, 1, 1 );
+   render_world( view_world, &g_render.cam, 0, 0, 1, 1 );
 
    particle_system_update( &particles_grind, vg.time_delta );
    //particle_system_debug( &particles_grind );
    particle_system_prerender( &particles_grind );
-   particle_system_render( &particles_grind, &skaterift.cam );
+   particle_system_render( &particles_grind, &g_render.cam );
    
    ent_tornado_pre_update();
    particle_system_update( &particles_env, vg.time_delta );
    particle_system_prerender( &particles_env );
-   particle_system_render( &particles_env, &skaterift.cam );
+   particle_system_render( &particles_env, &g_render.cam );
 
-   player_glide_render_effects( &skaterift.cam );
+   player_glide_render_effects( &g_render.cam );
 
    /* 
     * render transition 
@@ -516,36 +516,36 @@ static void render_scene(void)
 static void skaterift_composite_maincamera(void)
 {
    vg_camera_lerp( &localplayer.cam, &world_static.focus_cam,
-                vg_smoothstepf(world_static.focus_strength), &skaterift.cam );
+                vg_smoothstepf(world_static.focus_strength), &g_render.cam );
 
    if( skaterift.activity == k_skaterift_replay )
    {
       if( player_replay.use_freecam )
       {
          freecam_preupdate();
-         v3_copy( player_replay.replay_freecam.pos, skaterift.cam.pos );
-         v3_copy( player_replay.replay_freecam.angles, skaterift.cam.angles );
-         skaterift.cam.fov = player_replay.replay_freecam.fov;
+         v3_copy( player_replay.replay_freecam.pos, g_render.cam.pos );
+         v3_copy( player_replay.replay_freecam.angles, g_render.cam.angles );
+         g_render.cam.fov = player_replay.replay_freecam.fov;
       }
       else
       {
-         skaterift_get_replay_cam( &skaterift.cam );
+         skaterift_get_replay_cam( &g_render.cam );
       }
    }
 
-   skaterift.cam.nearz = 0.1f;
-   skaterift.cam.farz  = 2100.0f;
+   g_render.cam.nearz = 0.1f;
+   g_render.cam.farz  = 2100.0f;
 
    if( (skaterift.activity == k_skaterift_menu) && menu.bg_cam )
    {
-      ent_camera_unpack( menu.bg_cam, &skaterift.cam );
+      ent_camera_unpack( menu.bg_cam, &g_render.cam );
    }
 
    if( menu_viewing_map() )
    {
-      vg_camera_copy( &world_map.cam, &skaterift.cam );
-      skaterift.cam.nearz = 4.0f;
-      skaterift.cam.farz = 3100.0f;
+      vg_camera_copy( &world_map.cam, &g_render.cam );
+      g_render.cam.nearz = 4.0f;
+      g_render.cam.farz = 3100.0f;
    }
 
    if( global_miniworld.transition ){
@@ -559,10 +559,10 @@ static void skaterift_composite_maincamera(void)
       }
    }
 
-   vg_camera_update_transform( &skaterift.cam );
-   vg_camera_update_view( &skaterift.cam );
-   vg_camera_update_projection( &skaterift.cam );
-   vg_camera_finalize( &skaterift.cam );
+   vg_camera_update_transform( &g_render.cam );
+   vg_camera_update_view( &g_render.cam );
+   vg_camera_update_projection( &g_render.cam );
+   vg_camera_finalize( &g_render.cam );
 }
 
 static void render_main_game(void)
@@ -594,7 +594,7 @@ static void render_main_game(void)
    }
 
    /* variable res target */
-   vg_framebuffer_bind( gpipeline.fb_main, k_render_scale );
+   vg_framebuffer_bind( g_render.fb_main, k_render_scale );
    glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT );
 
@@ -612,18 +612,18 @@ static void render_main_game(void)
    /* continue with variable rate */
    if( !global_miniworld.transition && !menu_viewing_map() )
    {
-      vg_framebuffer_bind( gpipeline.fb_main, k_render_scale );
-      render_world_gates( get_view_world(), &skaterift.cam );
+      vg_framebuffer_bind( g_render.fb_main, k_render_scale );
+      render_world_gates( get_view_world(), &g_render.cam );
    }
 
    /* composite */
 
    if( (skaterift.activity == k_skaterift_menu) && menu.bg_blur )
       v2_muls( (v2f){ 0.04f, 0.001f }, 1.0f-skaterift.time_rate, 
-               gpipeline.blur_override );
+               g_render.blur_override );
    else 
-      v2_zero( gpipeline.blur_override );
-   postprocess_to_screen( gpipeline.fb_main );
+      v2_zero( g_render.blur_override );
+   postprocess_to_screen( g_render.fb_main );
 
    skaterift_replay_post_render();
    control_overlay_render();
@@ -646,7 +646,7 @@ void vg_render(void)
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
 
    render_main_game();
-   m4x4_copy( skaterift.cam.mtx.pv, vg.pv );
+   m4x4_copy( g_render.cam.mtx.pv, vg.pv );
    
    /* Other shite */
    glDisable(GL_BLEND);
@@ -666,8 +666,8 @@ void vg_gui( ui_context *ctx )
    if( k_light_editor )
       imgui_world_light_edit( ctx, world_current_instance() );
    
-   vg_ui.tex_bg = gpipeline.fb_main->attachments[0].id;
-   vg_framebuffer_inverse_ratio( gpipeline.fb_main, vg_ui.bg_inverse_ratio );
+   vg_ui.tex_bg = g_render.fb_main->attachments[0].id;
+   vg_framebuffer_inverse_ratio( g_render.fb_main, vg_ui.bg_inverse_ratio );
 
    menu_gui( ctx );
    player__im_gui( ctx );
index 85eb8554055f892f4b28d19beaaaf70c37e36ba0..bff9521305a05d4804b5c17f7be105a2d65f3458 100644 (file)
@@ -20,7 +20,6 @@ struct skaterift_globals
    op;
 
    f32 time_rate;
-   vg_camera cam;
    
    enum skaterift_activity {
       k_skaterift_default    = 0x00,
index 35004d6a81c08cbd323622a5bcce7c9ccf32e442..c0a3376df0ea72eae7d87968d33307a0ccee1768 100644 (file)
--- a/vehicle.c
+++ b/vehicle.c
@@ -10,8 +10,8 @@ struct drivable_vehicle gzoomer =
 int spawn_car( int argc, const char *argv[] )
 {
    v3f ra, rb, rx;
-   v3_copy( skaterift.cam.pos, ra );
-   v3_muladds( ra, skaterift.cam.transform[2], -10.0f, rb );
+   v3_copy( g_render.cam.pos, ra );
+   v3_muladds( ra, g_render.cam.transform[2], -10.0f, rb );
 
    float t;
    if( spherecast_world( world_current_instance(), 
index f8072c150607174cb997ba8bd00f594f0377c7ff..6975d601e587d43edcdd6ff7790a18bf69f7ce05 100644 (file)
@@ -275,13 +275,13 @@ static void workshop_form_async_submit_begin( void *payload, u32 size )
 static void workshop_form_async_download_image( void *payload, u32 size )
 {
    int w, h;
-   vg_framebuffer_get_res( gpipeline.fb_workshop_preview, &w, &h );
+   vg_framebuffer_get_res( g_render.fb_workshop_preview, &w, &h );
    vg_linear_clear( vg_mem.scratch );
    workshop_form.img_buffer = vg_linear_alloc( vg_mem.scratch, w*h*3 );
 
    vg_info( "read framebuffer: glReadPixels( %dx%d )\n", w,h );
 
-   glBindFramebuffer( GL_READ_FRAMEBUFFER, gpipeline.fb_workshop_preview->id );
+   glBindFramebuffer( GL_READ_FRAMEBUFFER, g_render.fb_workshop_preview->id );
    glReadBuffer( GL_COLOR_ATTACHMENT0 );
    glReadPixels( 0,0, w,h, GL_RGB, GL_UNSIGNED_BYTE, workshop_form.img_buffer );
 
@@ -588,7 +588,7 @@ static void workshop_form_async_imageload( void *data, u32 len )
    if( data )
    {
       vg_framebuffer_attachment *a = 
-         &gpipeline.fb_workshop_preview->attachments[0];
+         &g_render.fb_workshop_preview->attachments[0];
 
       glBindTexture( GL_TEXTURE_2D, a->id );
       glTexSubImage2D( GL_TEXTURE_2D, 0,0,0,
@@ -725,7 +725,7 @@ static void workshop_op_download_and_view_submission( int result_index )
          vg_error( "No metadata was returned with this item.\n" );
       }
 
-      vg_framebuffer_bind( gpipeline.fb_workshop_preview, 1.0f );
+      vg_framebuffer_bind( g_render.fb_workshop_preview, 1.0f );
       glClearColor( 0.2f, 0.0f, 0.0f, 1.0f );
       glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
       glBindFramebuffer( GL_FRAMEBUFFER, 0 );
@@ -890,14 +890,14 @@ void workshop_init(void)
 
 static void workshop_render_world_preview(void)
 {
-   vg_framebuffer_bind( gpipeline.fb_workshop_preview, 1.0f );
+   vg_framebuffer_bind( g_render.fb_workshop_preview, 1.0f );
 
    glClearColor( 0.0f, 0.0f, 0.3f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
    glEnable( GL_DEPTH_TEST );
    glDisable( GL_BLEND );
 
-   render_world( world_current_instance(), &skaterift.cam, 0, 0, 1, 1 );
+   render_world( world_current_instance(), &g_render.cam, 0, 0, 1, 1 );
 
    glBindFramebuffer( GL_FRAMEBUFFER, 0 );
    glViewport( 0,0, vg.window_x, vg.window_y );
@@ -908,7 +908,7 @@ static void workshop_render_world_preview(void)
  */
 static void workshop_render_player_preview(void)
 {
-   vg_framebuffer_bind( gpipeline.fb_workshop_preview, 1.0f );
+   vg_framebuffer_bind( g_render.fb_workshop_preview, 1.0f );
    glClearColor( 0.16f, 0.15f, 0.15f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
    glEnable( GL_DEPTH_TEST );
@@ -968,7 +968,7 @@ static void workshop_render_board_preview(void)
       return;
    }
 
-   vg_framebuffer_bind( gpipeline.fb_workshop_preview, 1.0f );
+   vg_framebuffer_bind( g_render.fb_workshop_preview, 1.0f );
 
    glClearColor( 0.0f, 0.0f, 0.3f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
@@ -1129,12 +1129,12 @@ static void workshop_form_gui_draw_preview( ui_context *ctx, ui_rect img_box )
    if( workshop_form.file_intent == k_workshop_form_file_intent_keep_old )
    {
       ui_image( ctx, 
-                img_box, &gpipeline.fb_workshop_preview->attachments[0].id );
+                img_box, &g_render.fb_workshop_preview->attachments[0].id );
    }
    else if( workshop_form.file_intent == k_workshop_form_file_intent_new )
    {
       ui_image( ctx, 
-                img_box, &gpipeline.fb_workshop_preview->attachments[0].id );
+                img_box, &g_render.fb_workshop_preview->attachments[0].id );
 
       if( type == k_addon_type_world )
       {
index 37e662f8f4160058ec29dd762d95c40d96448316..e75cb29cebfdb2c09519b33e1c212c35845ffb95 100644 (file)
@@ -146,7 +146,7 @@ void world_entity_focus_render(void)
 {
    world_instance *world = world_current_instance();
    if( skaterift.activity != k_skaterift_ent_focus ){
-      skateshop_render_nonfocused( world, &skaterift.cam );
+      skateshop_render_nonfocused( world, &g_render.cam );
       return;
    }
 
index 5db790a41192a11e26d5e62eaee061542ac3039e..7d93920e558014a1aac6562153e19a266d2075de 100644 (file)
@@ -613,7 +613,7 @@ static void world_render_challenges( world_instance *world,
    }
 
    /* render texts */
-   font3d_bind( &gui.font, k_font_shader_world, 0, world, &skaterift.cam );
+   font3d_bind( &gui.font, k_font_shader_world, 0, world, &g_render.cam );
 
    u32 count = 0;
 
@@ -656,7 +656,7 @@ static void world_render_challenges( world_instance *world,
 
       shader_scene_font_uOpacity( scale );
       shader_scene_font_uColourize( colour );
-      font3d_simple_draw( 1, buf, &skaterift.cam, mmdl );
+      font3d_simple_draw( 1, buf, &g_render.cam, mmdl );
    }
 }
 
@@ -1104,7 +1104,7 @@ void render_world( world_instance *world, vg_camera *cam,
    if( with_water )
    {
       render_water_texture( world, cam );
-      vg_framebuffer_bind( gpipeline.fb_main, k_render_scale );
+      vg_framebuffer_bind( g_render.fb_main, k_render_scale );
    }
 
    if( stenciled )
index 664a6e34f6ee8d7e97dde0106be91f0a45834eb8..3d95f09956599094f1c668ad3075bd6162176363 100644 (file)
@@ -51,7 +51,7 @@ void render_water_texture( world_instance *world, vg_camera *cam )
       return;
 
    /* Draw reflection buffa */
-   vg_framebuffer_bind( gpipeline.fb_water_reflection, k_render_scale );
+   vg_framebuffer_bind( g_render.fb_water_reflection, k_render_scale );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
 
    /* 
@@ -97,7 +97,7 @@ void render_water_texture( world_instance *world, vg_camera *cam )
     * Create beneath view matrix
     */
    vg_camera beneath_cam;
-   vg_framebuffer_bind( gpipeline.fb_water_beneath, k_render_scale );
+   vg_framebuffer_bind( g_render.fb_water_beneath, k_render_scale );
    glClearColor( 1.0f, 0.0f, 0.0f, 0.0f );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
 
@@ -130,7 +130,7 @@ void render_water_surface( world_instance *world, vg_camera *cam )
       /* Draw surface */
       shader_scene_water_use();
       
-      vg_framebuffer_bind_texture( gpipeline.fb_water_reflection, 0, 0 );
+      vg_framebuffer_bind_texture( g_render.fb_water_reflection, 0, 0 );
       shader_scene_water_uTexMain( 0 );
    
       glActiveTexture( GL_TEXTURE1 );
@@ -143,7 +143,7 @@ void render_water_surface( world_instance *world, vg_camera *cam )
 
       WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( world, scene_water );
 
-      vg_framebuffer_bind_texture( gpipeline.fb_water_beneath, 0, 5 );
+      vg_framebuffer_bind_texture( g_render.fb_water_beneath, 0, 5 );
       shader_scene_water_uTexBack( 5 );
       shader_scene_water_uTime( world_static.time );
       shader_scene_water_uCamera( cam->transform[3] );