void Portals_destroyShaders(){ GlobalShaderCache().release( g_state_solid ); GlobalShaderCache().release( g_state_solid_outline ); GlobalShaderCache().release( g_state_wireframe ); GlobalOpenGLStateLibrary().erase( g_state_solid ); GlobalOpenGLStateLibrary().erase( g_state_solid_outline ); GlobalOpenGLStateLibrary().erase( g_state_wireframe ); }
void DBobView::constructShaders(){ OpenGLState state; GlobalOpenGLStateLibrary().getDefaultState( state ); state.m_state = RENDER_COLOURWRITE | RENDER_DEPTHWRITE | RENDER_BLEND | RENDER_LINESMOOTH; state.m_sort = OpenGLState::eSortOpaque; state.m_linewidth = 1; state.m_colour[0] = 1; state.m_colour[1] = 0; state.m_colour[2] = 0; state.m_colour[3] = 1; GlobalOpenGLStateLibrary().insert( DBobView_state_line, state ); state.m_colour[0] = 0.25f; state.m_colour[1] = 0.75f; state.m_colour[2] = 0.75f; state.m_colour[3] = 1; GlobalOpenGLStateLibrary().insert( DBobView_state_box, state ); m_shader_line = GlobalShaderCache().capture( DBobView_state_line ); m_shader_box = GlobalShaderCache().capture( DBobView_state_box ); }
void DBobView::destroyShaders(){ GlobalOpenGLStateLibrary().erase( DBobView_state_line ); GlobalOpenGLStateLibrary().erase( DBobView_state_box ); GlobalShaderCache().release( DBobView_state_line ); GlobalShaderCache().release( DBobView_state_box ); }
void Portals_constructShaders(){ OpenGLState state; GlobalOpenGLStateLibrary().getDefaultState( state ); state.m_state = RENDER_COLOURWRITE | RENDER_DEPTHWRITE; state.m_sort = OpenGLState::eSortOverlayFirst; state.m_linewidth = portals.width_2d * 0.5f; state.m_colour[0] = portals.fp_color_2d[0]; state.m_colour[1] = portals.fp_color_2d[1]; state.m_colour[2] = portals.fp_color_2d[2]; state.m_colour[3] = portals.fp_color_2d[3]; if ( portals.aa_2d ) { state.m_state |= RENDER_BLEND | RENDER_LINESMOOTH; } GlobalOpenGLStateLibrary().insert( g_state_wireframe, state ); GlobalOpenGLStateLibrary().getDefaultState( state ); state.m_state = RENDER_FILL | RENDER_BLEND | RENDER_COLOURWRITE | RENDER_COLOURCHANGE | RENDER_SMOOTH; if ( portals.aa_3d ) { state.m_state |= RENDER_POLYGONSMOOTH; } switch ( portals.zbuffer ) { case 1: state.m_state |= RENDER_DEPTHTEST; break; case 2: break; default: state.m_state |= RENDER_DEPTHTEST; state.m_state |= RENDER_DEPTHWRITE; } if ( portals.fog ) { state.m_state |= RENDER_FOG; state.m_fog.mode = GL_EXP; state.m_fog.density = 0.001f; state.m_fog.start = 10.0f; state.m_fog.end = 10000.0f; state.m_fog.index = 0; state.m_fog.colour[0] = portals.fp_color_fog[0]; state.m_fog.colour[1] = portals.fp_color_fog[1]; state.m_fog.colour[2] = portals.fp_color_fog[2]; state.m_fog.colour[3] = portals.fp_color_fog[3]; } GlobalOpenGLStateLibrary().insert( g_state_solid, state ); GlobalOpenGLStateLibrary().getDefaultState( state ); state.m_state = RENDER_COLOURWRITE | RENDER_DEPTHWRITE; state.m_sort = OpenGLState::eSortOverlayFirst; state.m_linewidth = portals.width_3d * 0.5f; state.m_colour[0] = portals.fp_color_3d[0]; state.m_colour[1] = portals.fp_color_3d[1]; state.m_colour[2] = portals.fp_color_3d[2]; state.m_colour[3] = portals.fp_color_3d[3]; if ( portals.aa_3d ) { state.m_state |= RENDER_LINESMOOTH; } switch ( portals.zbuffer ) { case 1: state.m_state |= RENDER_DEPTHTEST; break; case 2: break; default: state.m_state |= RENDER_DEPTHTEST; state.m_state |= RENDER_DEPTHWRITE; } if ( portals.fog ) { state.m_state |= RENDER_FOG; state.m_fog.mode = GL_EXP; state.m_fog.density = 0.001f; state.m_fog.start = 10.0f; state.m_fog.end = 10000.0f; state.m_fog.index = 0; state.m_fog.colour[0] = portals.fp_color_fog[0]; state.m_fog.colour[1] = portals.fp_color_fog[1]; state.m_fog.colour[2] = portals.fp_color_fog[2]; state.m_fog.colour[3] = portals.fp_color_fog[3]; } GlobalOpenGLStateLibrary().insert( g_state_solid_outline, state ); g_shader_solid = GlobalShaderCache().capture( g_state_solid ); g_shader_solid_outline = GlobalShaderCache().capture( g_state_solid_outline ); g_shader_wireframe = GlobalShaderCache().capture( g_state_wireframe ); }