All pastes #261629 Raw Edit

Something

public text v1 · immutable
#261629 ·published 2006-11-29 18:48 UTC
rendered paste body
void renderWorld::renderLoop(int winWidth, int winHeight)
{    
    // Clear screen
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    
    // Select and setup the projection matrix
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    
    //update viewport
    glViewport( 0, 0, winWidth, winHeight );
    gluPerspective( 45.0f, ((GLfloat)winWidth)/((GLfloat)winHeight), 0.1f , 10000.0f );
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
    
    cam.updateCamera();
 
    glDepthMask( GL_TRUE );

   
    if(advanced) 
    {
        glEnable(GL_FOG);
        // Activate the first texture ID, shaddowmap multiplied with colormap
	    glActiveTextureARB(GL_TEXTURE0_ARB);
        glBindTexture(GL_TEXTURE_2D, terrain.single_texture_id);
	    
	// Activate the second texture ID and bind the fog texture to it
	glActiveTextureARB(GL_TEXTURE1_ARB);
	glEnable(GL_TEXTURE_2D);
		
	// Here we turn on the COMBINE properties and increase our RGB
	// gamma for the detail texture.  2 seems to work just right.
	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
	glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_ARB, 2);
	
	// Bind the detail texture
	glBindTexture(GL_TEXTURE_2D, terrain.worleyMap_tex_id);
    
	// Now we want to enter the texture matrix.  This will allow us
	// to change the tiling of the detail texture.
	glMatrixMode(GL_TEXTURE);

	// Reset the current matrix and apply our chosen scale value
	glLoadIdentity();
	glScalef(DetailScale, DetailScale, 1);

	// Leave the texture matrix and set us back in the model view matrix
	glMatrixMode(GL_MODELVIEW);
    }
    else
        glBindTexture( GL_TEXTURE_2D, terrain.single_texture_id);  
    
    
    
    if(wireframe)
    {
        glDisable( GL_TEXTURE_2D );
        glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
        glCallList(terrainList);
        glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
        glEnable( GL_TEXTURE_2D );
    }
    else
        glCallList(terrainList);    
    
    if(advanced)
    {
        glActiveTextureARB(GL_TEXTURE1_ARB);
        glDisable(GL_TEXTURE_2D);
    
        glActiveTextureARB(GL_TEXTURE0_ARB);		
 
        glDisable(GL_FOG);
        glCallList(skyboxList);
    }
    else
        glCallList(skyboxList);
    
}