static struct
{
- GLuint fb, rgb, rb, vao, vbo;
+ GLuint fb, rgb, rb;
glmesh mdl;
}
grender;
shader_gate_register();
}
-static void gate_init( void (*newfb)(GLuint*,GLuint*,GLuint*) )
+static void gate_init(void)
{
- newfb( &grender.fb, &grender.rgb, &grender.rb );
- {
- float ksz = 1.0f;
- float quad[] = { -ksz,-ksz,0.0f, ksz, ksz,0.0f, -ksz, ksz,0.0f,
- -ksz,-ksz,0.0f, ksz,-ksz,0.0f, ksz, ksz,0.0f,
- -ksz,-ksz,-0.1f, ksz, ksz,-0.1f, -ksz, ksz,-0.1f,
- -ksz,-ksz,-0.1f, ksz,-ksz,-0.1f, ksz, ksz,-0.1f };
-
- glGenVertexArrays( 1, &grender.vao );
- glGenBuffers( 1, &grender.vbo );
- glBindVertexArray( grender.vao );
- glBindBuffer( GL_ARRAY_BUFFER, grender.vbo );
- glBufferData( GL_ARRAY_BUFFER, sizeof(quad), quad, GL_STATIC_DRAW );
- glBindVertexArray( grender.vao );
- glVertexAttribPointer( 0, 3, GL_FLOAT, GL_FALSE,
- sizeof(float)*3, (void*)0 );
- glEnableVertexAttribArray( 0 );
- VG_CHECK_GL();
- }
+ create_renderbuffer_std( &grender.fb, &grender.rgb, &grender.rb );
model *mgate = vg_asset_read( "models/rs_gate.mdl" );
model_unpack( mgate, &grender.mdl );
free( mgate );
}
-static void gate_fb_resize( void (*resize)(GLuint*,GLuint*,GLuint*) )
+static void gate_fb_resize(void)
{
- resize( &grender.fb, &grender.rgb, &grender.rb );
+ resize_renderbuffer_std( &grender.fb, &grender.rgb, &grender.rb );
}
static void render_gate( teleport_gate *gate, m4x3f camera )
surface[3] = v3_dot( surface, gate->other->co );
m4x4f projection;
- m4x4_projection( projection,
- gpipeline.fov,
- (float)vg_window_x / (float)vg_window_y,
- 0.1f, 900.0f );
+ pipeline_projection( projection, 0.1f, 900.0f );
#if 0 /* For debugging frustum */
{
m4x4_mul( projection, view, projection );
- render_world( projection );
+ render_world( projection, cam_new );
render_water_texture( cam_new );
glBindFramebuffer( GL_FRAMEBUFFER, grender.fb );
render_water_surface( projection );
mesh_draw( &grender.mdl );
glDisable(GL_BLEND);
- return;
- glBindVertexArray( grender.vao );
- glDrawArrays( GL_TRIANGLES, 0, 12 );
}
static int gate_intersect( teleport_gate *gate, v3f pos, v3f last )