From: hgn Date: Thu, 13 Jun 2024 08:54:34 +0000 (+0100) Subject: move location of main camera to g_render X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=0ba0bbe2da453f17f56a88521057e6514ae30b8f;p=carveJwlIkooP6JGAAIwe30JlM.git move location of main camera to g_render --- diff --git a/depth_compare.h b/depth_compare.h index 28e9496..1db5665 100644 --- a/depth_compare.h +++ b/depth_compare.h @@ -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 ); diff --git a/ent_miniworld.c b/ent_miniworld.c index 40fac19..19c88d0 100644 --- a/ent_miniworld.c +++ b/ent_miniworld.c @@ -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); } diff --git a/ent_skateshop.c b/ent_skateshop.c index 7b41857..f2b4a17 100644 --- a/ent_skateshop.c +++ b/ent_skateshop.c @@ -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 15ecde6..fa144c4 100644 --- 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 ); } diff --git a/network.c b/network.c index dd90edd..6d6178e 100644 --- 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 ){ diff --git a/player.c b/player.c index b200a78..ff3e6dd 100644 --- 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 ); diff --git a/player_glide.c b/player_glide.c index 5df05e3..3cbcb28 100644 --- a/player_glide.c +++ b/player_glide.c @@ -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 ); } } diff --git a/player_remote.c b/player_remote.c index 44d28b2..e8ca56c 100644 --- a/player_remote.c +++ b/player_remote.c @@ -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; } diff --git a/player_replay.c b/player_replay.c index 428c038..0db1ca4 100644 --- a/player_replay.c +++ b/player_replay.c @@ -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(); } diff --git a/render.c b/render.c index ec2e0ef..aa0cfab 100644 --- 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 ); diff --git a/render.h b/render.h index 4986316..c5a0880 100644 --- 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); diff --git a/skaterift.c b/skaterift.c index f99f876..87118fc 100644 --- a/skaterift.c +++ b/skaterift.c @@ -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 ); diff --git a/skaterift.h b/skaterift.h index 85eb855..bff9521 100644 --- a/skaterift.h +++ b/skaterift.h @@ -20,7 +20,6 @@ struct skaterift_globals op; f32 time_rate; - vg_camera cam; enum skaterift_activity { k_skaterift_default = 0x00, diff --git a/vehicle.c b/vehicle.c index 35004d6..c0a3376 100644 --- 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(), diff --git a/workshop.c b/workshop.c index f8072c1..6975d60 100644 --- a/workshop.c +++ b/workshop.c @@ -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 ) { diff --git a/world_entity.c b/world_entity.c index 37e662f..e75cb29 100644 --- a/world_entity.c +++ b/world_entity.c @@ -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; } diff --git a/world_render.c b/world_render.c index 5db790a..7d93920 100644 --- a/world_render.c +++ b/world_render.c @@ -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 ) diff --git a/world_water.c b/world_water.c index 664a6e3..3d95f09 100644 --- a/world_water.c +++ b/world_water.c @@ -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] );