X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=gate.h;h=eb0f335782b0ff367c2d1685548a4263e24cf494;hb=6a4dafa6fe9a3dd4bb88698bbe964154364390ec;hp=7088c7dc5c236dc03223e5b3948904a6011278d0;hpb=dfee9022b3513fddec36f7ea70867ee5961a44da;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/gate.h b/gate.h index 7088c7d..eb0f335 100644 --- a/gate.h +++ b/gate.h @@ -62,8 +62,8 @@ static void gate_init(void) { fb_init( &grender.fb ); - model *mgate = vg_asset_read( "models/rs_gate.mdl" ); - model_unpack( mgate, &grender.mdl ); + mdl_header *mgate = mdl_load( "models/rs_gate.mdl" ); + mdl_unpack_glmesh( mgate, &grender.mdl ); free( mgate ); } @@ -72,7 +72,7 @@ static void gate_fb_resize(void) fb_resize( &grender.fb ); } -static void render_gate( teleport_gate *gate, m4x3f camera ) +static int render_gate( teleport_gate *gate, m4x3f camera ) { v3f viewpos, viewdir, gatedir; v3_copy( camera[3], viewpos ); @@ -82,10 +82,10 @@ static void render_gate( teleport_gate *gate, m4x3f camera ) v3f v0; v3_sub( viewpos, gate->co[0], v0 ); if( v3_dot(v0, gatedir) >= 0.0f ) - return; + return 0; if( v3_dist( viewpos, gate->co[0] ) > 100.0f ) - return; + return 0; v3f a,b,c,d; @@ -162,7 +162,7 @@ static void render_gate( teleport_gate *gate, m4x3f camera ) } render_world( projection, cam_new ); - + if( grender.high_qual ) { /* @@ -202,10 +202,20 @@ static void render_gate( teleport_gate *gate, m4x3f camera ) } else { + glDisable( GL_STENCIL_TEST ); + + render_water_texture( cam_new ); + fb_use( NULL ); + glEnable( GL_STENCIL_TEST ); + + render_water_surface( projection, cam_new ); + glStencilMask( 0xFF ); glStencilFunc( GL_ALWAYS, 1, 0xFF ); glDisable( GL_STENCIL_TEST ); } + + return 1; } static int gate_intersect( teleport_gate *gate, v3f pos, v3f last )