- procedure glDraw();
- begin
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
- glLoadIdentity(); // Reset The View
- glTranslatef(0.0,0.0,-4);
- glBindTexture(GL_TEXTURE_2D, BumpmapTex);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- glDisable(GL_BLEND);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, 0.0);
- glEnd();
- glMatrixMode(GL_TEXTURE);
- glPushMatrix();
- glTranslatef((xCoord-Width/2)/BumpAmount , (Height/2-yCoord)/BumpAmount, 0 );
- glBlendFunc(GL_ONE,GL_ONE);
- glEnable(GL_BLEND);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
- glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_ADD_SIGNED_EXT);
- glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_PRIMARY_COLOR_EXT );
- glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_TEXTURE);
- glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
- glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, 0.0);
- glEnd();
- glPopMatrix;
- glMatrixMode(GL_MODELVIEW);
- if TextureBackground then
- glBindTexture(GL_TEXTURE_2D, Background2Tex)
- else
- glBindTexture(GL_TEXTURE_2D, BackgroundTex);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, 0.0);
- glEnd();
- end;