Ejemplo n.º 1
0
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 );
}
Ejemplo n.º 2
0
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 );
}
Ejemplo n.º 3
0
void DBobView::destroyShaders(){
	GlobalOpenGLStateLibrary().erase( DBobView_state_line );
	GlobalOpenGLStateLibrary().erase( DBobView_state_box );
	GlobalShaderCache().release( DBobView_state_line );
	GlobalShaderCache().release( DBobView_state_box );
}
Ejemplo n.º 4
0
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 );
}