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 );