#include "render.h"
#include "audio.h"
#include "world.h"
+#include "font.h"
#include "vehicle.h"
static int cl_ui = 1,
- cl_view_id = 0,
cl_light_edit = 0;
int main( int argc, char *argv[] )
.persistent = 0
});
- vg_var_push( (struct vg_var){
- .name = "cl_view_id",
- .data = &cl_view_id,
- .data_type = k_var_dtype_i32,
- .opt_i32 = { .min=0, .max=1, .clamp=1 },
- .persistent = 0
- });
-
vg_var_push( (struct vg_var){
.name = "ledit",
.data = &cl_light_edit,
vg_loader_step( render_init, NULL );
vg_loader_step( menu_init, NULL );
vg_loader_step( world_init, NULL );
+ vg_loader_step( font3d_init, NULL );
+
+ font3d_load( &world_global.font, "models/rs_font.mdl", vg_mem.rtmemory );
+
//vg_loader_step( player_init, NULL );
//vg_loader_step( vehicle_init, NULL );
//
/* 'systems' are completely loaded now */
/* load home world */
- world_load( &world_global.worlds[0], "maps/mp_mtzero.mdl" );
+ world_load( &world_global.worlds[0], "maps/mp_gridmap.mdl" );
+ //world_load( &world_global.worlds[0], "maps/mp_mtzero.mdl" );
#if 0
world_load( &world_global.worlds[1], "maps/mp_gridmap.mdl" );
VG_STATIC void present_view_with_post_processing(void)
{
glBindFramebuffer( GL_FRAMEBUFFER, 0 );
+ glViewport( 0,0, vg.window_x, vg.window_y );
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
glBlendEquation(GL_FUNC_ADD);
+ v2f inverse;
+ render_fb_inverse_ratio( gpipeline.fb_main, inverse );
+
if( cl_blur ){
shader_blitblur_use();
shader_blitblur_uTexMain( 0 );
shader_blitblur_uTexMotion( 1 );
shader_blitblur_uBlurStrength(cl_blur_strength / (vg.frame_delta*60.0f));
+ shader_blitblur_uInverseRatio( inverse );
v2f menu_blurring;
v2_muls( (v2f){ 0.04f, 0.001f }, menu_opacity, menu_blurring );
shader_blitblur_uOverrideDir( menu_blurring );
- if( cl_view_id == 0 )
- render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
- else if( cl_view_id == 1 )
- render_fb_bind_texture( gpipeline.fb_main, 1, 0 );
- else
- render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
-
+ render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
render_fb_bind_texture( gpipeline.fb_main, 1, 1 );
}
else{
shader_blit_use();
shader_blit_uTexMain( 0 );
+ shader_blit_uInverseRatio( inverse );
render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
}
/* Draw player to window buffer and blend background ontop */
glBindFramebuffer( GL_FRAMEBUFFER, 0 );
+ glViewport( 0,0, vg.window_x, vg.window_y );
player__render( &small_cam, &localplayer );
}
VG_STATIC void render_scene(void)
{
- render_fb_bind( gpipeline.fb_main );
+ render_fb_bind( gpipeline.fb_main, 1 );
glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );
glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT );
render_world( view_world, &main_camera, 0 );
-
render_water_texture( view_world, &main_camera, 0 );
- render_fb_bind( gpipeline.fb_main );
+ render_fb_bind( gpipeline.fb_main, 1 );
render_water_surface( view_world, &main_camera );
int depth = 1;
glViewport( 0,0, vg.window_x, vg.window_y );
}
-VG_STATIC void run_light_widget( struct light_widget *lw );
VG_STATIC void vg_ui(void)
{
#if 0
#endif
world_instance *world = get_active_world();
menu_crap_ui();
-
-#if 0
- if( cl_light_edit )
- {
- vg_uictx.cursor[0] = 10;
- vg_uictx.cursor[1] = 10;
- vg_uictx.cursor[2] = 200;
- vg_uictx.cursor[3] = 20;
-
- struct ub_world_lighting *wl = &gpipeline.ub_world_lighting;
- struct ui_slider_vector
- s5 = { .min=0.0f, .max=2.0f, .len=3, .data=wl->g_ambient_colour };
-
- struct ui_slider
- s8 = { .min=0.0f, .max=2.0f, .data = &gpipeline.shadow_spread },
- s9 = { .min=0.0f, .max=25.0f, .data = &gpipeline.shadow_length };
-
- for( int i=0; i<3; i++ )
- run_light_widget( &gpipeline.widgets[i] );
-
- ui_text( vg_uictx.cursor, "Ambient", 1, 0 );
- vg_uictx.cursor[1] += 16;
- ui_slider_vector( &s5 );
-
- ui_text( vg_uictx.cursor, "Shadows", 1, 0 );
- vg_uictx.cursor[1] += 16;
- ui_slider( &s8 );
- ui_slider( &s9 );
-
- ui_text( vg_uictx.cursor, "Misc", 1, 0 );
- vg_uictx.cursor[1] += 16;
- struct ui_checkbox c1 = {.data = &wl->g_light_preview};
- ui_checkbox( &c1 );
-
- render_update_lighting_ub();
- }
-#endif
audio_debug_soundscapes();
render_view_framebuffer_ui();
#endif
}
-VG_STATIC void run_light_widget( struct light_widget *lw )
-{
- struct ui_checkbox c1 = { .data=&lw->enabled };
-
- ui_checkbox( &c1 );
-
- if( lw->enabled )
- {
- struct ui_slider_vector
- colour = { .min=0.0f, .max=2.0f, .len=3, .data=lw->colour },
- dir = { .min=-VG_PIf, .max=VG_PIf, .len=2, .data=lw->dir };
-
- ui_slider_vector( &colour );
- vg_uictx.cursor[1] += 4;
- ui_slider_vector( &dir );
- }
-}
-
VG_STATIC void run_debug_info(void)
{
#if 0