Contents / Previous / Next


Display Lists Example Program

  // Var for displaylists.
  int sun, planet1, moon11, moon12;
 
  private void initSolarSystemDisplayLists( GL gl, GLU glu ) 
    {

      GLUquadric qobj0 = glu.gluNewQuadric();
      glu.gluQuadricDrawStyle( qobj0, GLU.GLU_FILL );
      glu.gluQuadricNormals( qobj0, GLU.GLU_SMOOTH );

      // sun
      sun = gl.glGenLists(1);
      if( sun == 0 ) {
	System.out.println("GenList Error");
      } else {
	System.out.println("GenList sun:"+sun);//ddd
	gl.glNewList( sun, GL.GL_COMPILE ); {
	  gl.glColor4f( 1f, 1f, 0f, 1f );
	  //setSomeYellowMaterial( gl );
	  glu.gluSphere( qobj0, 0.8f, 20, 20);
	} gl.glEndList();
      }

      // planet1
      planet1 = gl.glGenLists(1);
      if( planet1 == 0 ) {
	System.out.println("GenList Error");
      } else {
	System.out.println("GenList planet1:"+planet1);//ddd
	gl.glNewList( planet1, GL.GL_COMPILE ); {
	  gl.glTranslatef ( 3.0f, 0.0f, 0.0f); 
	  gl.glColor4f( 0f, 1f, 0f, 1f );
	  //setSomeBlueMaterial( gl );
	  glu.gluSphere( qobj0, 0.3f, 20, 20);
	} gl.glEndList();
      }
      // moon 11
      moon11 = gl.glGenLists(1);
      if( moon11 == 0 ) {
	System.out.println("GenList Error");
      } else {
	gl.glNewList( moon11, GL.GL_COMPILE ); {
	  gl.glTranslatef (0.8f, 0.0f, 0.0f); 
	  gl.glColor4f( 0f, 0f, 1f, 1f );
	  //setSomeRedMaterial( gl );
	  glu.gluSphere( qobj0, 0.08f, 10, 10);
	} gl.glEndList();
      }

      ...
    }

  private void drawSolarSystem( GL gl, GLU glu ) 
    {
    
      ....

      gl.glPushMatrix(); {

	// Sun
	gl.glCallList( sun );

	gl.glPushMatrix(); {

	  // Planet 1 
	  gl.glRotatef (angleYear, 0.0f, 1.0f, 0.0f); 
	  gl.glCallList( planet1 );

	  ....
	
	} gl.glPopMatrix();

      } gl.glPopMatrix();
   }