Example #1
0
SbBool
generateTextureMap (SoNode *root, SoTexture2 *texture,
   short textureWidth, short textureHeight)
{
   SbViewportRegion myViewport(textureWidth, textureHeight);
   SoOffscreenRenderer::Components comp = SoOffscreenRenderer::RGB;

   // Render the scene
   SoOffscreenRenderer *myRenderer = new SoOffscreenRenderer(myViewport);
   myRenderer->setComponents(comp);
   myRenderer->setBackgroundColor(SbColor(0.8, 0.8, 0.0));
   if (!myRenderer->render(root)) {
      delete myRenderer;
      return FALSE;
   }

   // Generate the texture
   texture->image.setValue(SbVec2s(textureWidth, textureHeight), comp, 
                           myRenderer->getBuffer());
   delete myRenderer;
   return TRUE; 
} 
Example #2
0
void display( void ) {
	
     /* 
	* Set clear color to gray 
     */
    myClearColor ( 0.8, 0.8, 0.8, 0.0 );
	
    /* 
	* Clear screen window 
     */
    myClear( GL_COLOR_BUFFER_BIT );
		
	myLoadIdentity();
	myPushMatrix();
	
	/* 
	 * plain old polygon test
	 */
	if ( (displayNumber % 4) == 1) {
		
		/* default clipping */
		myOrtho2D( -100.0, 100.0, -100.0, 100.0 );
		
		/* default viewport */
		myViewport( 0, 0, screenWidth, screenHeight );
	
		myPushMatrix();

		/* draw the polys */
		drawPolys();
	}
	else if ( (displayNumber % 4) == 2) {
		
		/* clipping test */
		myOrtho2D( -65.0, 75.0, -80.0, 65.0 );
		
		/* default viewport */
		myViewport( 0, 0, screenWidth, screenHeight );
		
		/* flip screen around! */
		myScalef(-1.0,1.0);
		myPushMatrix();
		

		/* draw the polys */
		drawPolys();
		
    }
	else if ( (displayNumber % 4) == 3) {
		
		/* default clipping */
		myOrtho2D( -100.0, 100.0, -100.0, 100.0 );
		
		/* default viewport */
		myViewport( 0, 0, screenWidth, screenHeight );

		/* rotate screen */
		myRotatef(15.0);
		myPushMatrix();

		/* draw the tranformed polys */
		drawPolys();
	}
	
	else /* displayNumber == 0 */ {
		
		/* default clipping */
		myOrtho2D( -100.0, 100.0, -100.0, 100.0 );
		
		/* default viewport */
		myViewport( 0, 0, screenWidth, screenHeight );

		myRotatef(-15.0);
		myScalef(.5,.5);
		myPushMatrix();
		myRotatef(15.0);
		myPushMatrix();

		/* draw the tranformed polys */
		drawPolys();
	
		
	}
	
	/* 
     * Flush GL buffers to the display   
     */
    glFlush( );
	
}