|
|
@@ -174,59 +174,56 @@ int Render::InitDraw(void) |
|
|
|
glEnable(GL_CULL_FACE); // disable cull face |
|
|
|
glCullFace(GL_BACK); // don't draw front face |
|
|
|
|
|
|
|
if (m_shader) |
|
|
|
{ |
|
|
|
/* Initialise framebuffer objects */ |
|
|
|
fbo_back = new FrameBuffer(screen_size); |
|
|
|
fbo_front = new FrameBuffer(screen_size); |
|
|
|
fbo_blur_h = new FrameBuffer(screen_size / glow_fbo_size); |
|
|
|
fbo_blur_v = new FrameBuffer(screen_size / glow_fbo_size); |
|
|
|
fbo_ping = new FrameBuffer(screen_size); |
|
|
|
fbo_pong = new FrameBuffer(screen_size); |
|
|
|
// shader simple |
|
|
|
shader_simple = Shader::Create(lolfx_simple); |
|
|
|
shader_simple_texture = shader_simple->GetUniformLocation("texture"); |
|
|
|
// shader blur horizontal |
|
|
|
shader_blur_h = Shader::Create(lolfx_blurh); |
|
|
|
shader_blur_h_texture = shader_blur_h->GetUniformLocation("texture"); |
|
|
|
shader_blur_h_screen_size = shader_blur_h->GetUniformLocation("screen_size"); |
|
|
|
shader_blur_h_time = shader_blur_h->GetUniformLocation("time"); |
|
|
|
shader_blur_h_value = shader_blur_h->GetUniformLocation("value"); |
|
|
|
// shader blur vertical |
|
|
|
shader_blur_v = Shader::Create(lolfx_blurv); |
|
|
|
shader_blur_v_texture = shader_blur_v->GetUniformLocation("texture"); |
|
|
|
shader_blur_v_screen_size = shader_blur_v->GetUniformLocation("screen_size"); |
|
|
|
shader_blur_v_time = shader_blur_v->GetUniformLocation("time"); |
|
|
|
shader_blur_v_value = shader_blur_v->GetUniformLocation("value"); |
|
|
|
// shader glow |
|
|
|
shader_glow = Shader::Create(lolfx_glow); |
|
|
|
shader_glow_texture = shader_glow->GetUniformLocation("texture"); |
|
|
|
shader_glow_texture_prv = shader_glow->GetUniformLocation("texture_prv"); |
|
|
|
shader_glow_screen_size = shader_glow->GetUniformLocation("screen_size"); |
|
|
|
shader_glow_time = shader_glow->GetUniformLocation("time"); |
|
|
|
shader_glow_step = shader_glow->GetUniformLocation("step"); |
|
|
|
shader_glow_value1 = shader_glow->GetUniformLocation("value1"); |
|
|
|
shader_glow_value2 = shader_glow->GetUniformLocation("value2"); |
|
|
|
// shader radial |
|
|
|
shader_radial = Shader::Create(lolfx_radial); |
|
|
|
shader_radial_texture = shader_radial->GetUniformLocation("texture"); |
|
|
|
shader_radial_screen_size = shader_radial->GetUniformLocation("screen_size"); |
|
|
|
shader_radial_time = shader_radial->GetUniformLocation("time"); |
|
|
|
shader_radial_value1 = shader_radial->GetUniformLocation("value1"); |
|
|
|
shader_radial_value2 = shader_radial->GetUniformLocation("value2"); |
|
|
|
shader_radial_color = shader_radial->GetUniformLocation("color"); |
|
|
|
// shader postfx |
|
|
|
shader_postfx = Shader::Create(lolfx_postfx); |
|
|
|
shader_postfx_texture = shader_postfx->GetUniformLocation("texture"); |
|
|
|
shader_postfx_texture_2d = shader_postfx->GetUniformLocation("texture_2d"); |
|
|
|
shader_postfx_screen_size = shader_postfx->GetUniformLocation("screen_size"); |
|
|
|
shader_postfx_time = shader_postfx->GetUniformLocation("time"); |
|
|
|
shader_postfx_flash = shader_postfx->GetUniformLocation("flash"); |
|
|
|
shader_postfx_value = shader_postfx->GetUniformLocation("value"); |
|
|
|
shader_postfx_deform = shader_postfx->GetUniformLocation("deform"); |
|
|
|
shader_postfx_scanline = shader_postfx->GetUniformLocation("scanline"); |
|
|
|
shader_postfx_sync = shader_postfx->GetUniformLocation("sync"); |
|
|
|
} |
|
|
|
/* Initialise framebuffer objects */ |
|
|
|
fbo_back = new FrameBuffer(screen_size); |
|
|
|
fbo_front = new FrameBuffer(screen_size); |
|
|
|
fbo_blur_h = new FrameBuffer(screen_size / glow_fbo_size); |
|
|
|
fbo_blur_v = new FrameBuffer(screen_size / glow_fbo_size); |
|
|
|
fbo_ping = new FrameBuffer(screen_size); |
|
|
|
fbo_pong = new FrameBuffer(screen_size); |
|
|
|
// shader simple |
|
|
|
shader_simple = Shader::Create(lolfx_simple); |
|
|
|
shader_simple_texture = shader_simple->GetUniformLocation("texture"); |
|
|
|
// shader blur horizontal |
|
|
|
shader_blur_h = Shader::Create(lolfx_blurh); |
|
|
|
shader_blur_h_texture = shader_blur_h->GetUniformLocation("texture"); |
|
|
|
shader_blur_h_screen_size = shader_blur_h->GetUniformLocation("screen_size"); |
|
|
|
shader_blur_h_time = shader_blur_h->GetUniformLocation("time"); |
|
|
|
shader_blur_h_value = shader_blur_h->GetUniformLocation("value"); |
|
|
|
// shader blur vertical |
|
|
|
shader_blur_v = Shader::Create(lolfx_blurv); |
|
|
|
shader_blur_v_texture = shader_blur_v->GetUniformLocation("texture"); |
|
|
|
shader_blur_v_screen_size = shader_blur_v->GetUniformLocation("screen_size"); |
|
|
|
shader_blur_v_time = shader_blur_v->GetUniformLocation("time"); |
|
|
|
shader_blur_v_value = shader_blur_v->GetUniformLocation("value"); |
|
|
|
// shader glow |
|
|
|
shader_glow = Shader::Create(lolfx_glow); |
|
|
|
shader_glow_texture = shader_glow->GetUniformLocation("texture"); |
|
|
|
shader_glow_texture_prv = shader_glow->GetUniformLocation("texture_prv"); |
|
|
|
shader_glow_screen_size = shader_glow->GetUniformLocation("screen_size"); |
|
|
|
shader_glow_time = shader_glow->GetUniformLocation("time"); |
|
|
|
shader_glow_step = shader_glow->GetUniformLocation("step"); |
|
|
|
shader_glow_value1 = shader_glow->GetUniformLocation("value1"); |
|
|
|
shader_glow_value2 = shader_glow->GetUniformLocation("value2"); |
|
|
|
// shader radial |
|
|
|
shader_radial = Shader::Create(lolfx_radial); |
|
|
|
shader_radial_texture = shader_radial->GetUniformLocation("texture"); |
|
|
|
shader_radial_screen_size = shader_radial->GetUniformLocation("screen_size"); |
|
|
|
shader_radial_time = shader_radial->GetUniformLocation("time"); |
|
|
|
shader_radial_value1 = shader_radial->GetUniformLocation("value1"); |
|
|
|
shader_radial_value2 = shader_radial->GetUniformLocation("value2"); |
|
|
|
shader_radial_color = shader_radial->GetUniformLocation("color"); |
|
|
|
// shader postfx |
|
|
|
shader_postfx = Shader::Create(lolfx_postfx); |
|
|
|
shader_postfx_texture = shader_postfx->GetUniformLocation("texture"); |
|
|
|
shader_postfx_texture_2d = shader_postfx->GetUniformLocation("texture_2d"); |
|
|
|
shader_postfx_screen_size = shader_postfx->GetUniformLocation("screen_size"); |
|
|
|
shader_postfx_time = shader_postfx->GetUniformLocation("time"); |
|
|
|
shader_postfx_flash = shader_postfx->GetUniformLocation("flash"); |
|
|
|
shader_postfx_value = shader_postfx->GetUniformLocation("value"); |
|
|
|
shader_postfx_deform = shader_postfx->GetUniformLocation("deform"); |
|
|
|
shader_postfx_scanline = shader_postfx->GetUniformLocation("scanline"); |
|
|
|
shader_postfx_sync = shader_postfx->GetUniformLocation("sync"); |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|