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 );
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;
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);
}
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:;
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
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();
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
* ----------------------------------------------------------------- */
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 );
}
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;
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 );
}
/*
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 );
}
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;
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 ){
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 );
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 );
}
}
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;
}
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 )
&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();
}
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 );
VG_CHECK_GL_ERR();
glBindFramebuffer( GL_FRAMEBUFFER, 0 );
- gpipeline.ready = 1;
+ g_render.ready = 1;
}
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,
.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,
.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,
.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,
.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,
.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,
.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,
.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 );
}
*/
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 );
}
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 );
int ready;
v2f blur_override;
+ vg_camera cam;
}
-static gpipeline;
+static g_render;
void render_init(void);
void render_fsquad(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,
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;
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
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 ){
}
}
- 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)
}
/* 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 );
/* 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();
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);
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 );
op;
f32 time_rate;
- vg_camera cam;
enum skaterift_activity {
k_skaterift_default = 0x00,
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(),
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 );
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,
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 );
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 );
*/
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 );
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 );
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 )
{
{
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;
}
}
/* 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;
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 );
}
}
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 )
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 );
/*
* 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 );
/* 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 );
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] );