- procedure TextureLoad;
- begin
- LoadTexture('wall.tga', textureW, false);
- glGenTextures(1, @textureW);
- glBindTexture(GL_TEXTURE_2D, textureW);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- end;
- procedure glDrawScene;
- begin
- glLoadIdentity;
- glBindTexture(GL_TEXTURE_2D,textureW);
- // Zeichne ein Quadrat
- //glcolor3f(0,1,0);
- glBegin( GL_QUADS );
- glTexCoord2f(0,1);glVertex3f( -1.0, 1.0, 0.0 );
- glTexCoord2f(1,1);glVertex3f( 1.0, 1.0, 0.0 );
- glTexCoord2f(1,0);glVertex3f( 1.0, -1.0, 0.0 );
- glTexCoord2f(0,0);glVertex3f( -1.0, -1.0, 0.0 );
- glEnd;
- end;
- procedure TGLForm.FormCreate(Sender: TObject);
- begin
- InitOpenGL;
- DC := GetDC(panel1.Handle);
- RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
- ActivateRenderingContext(DC, RC);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glClearColor(0,0,0,0);
- Application.OnIdle := ApplicationEventsIdle;
- StartTick := GetTickCount;
- glEnable(GL_TEXTURE_2D);
- TextureLoad;
- end;
- procedure TGLForm.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
- begin
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity;
- glViewPort(0, 0, Panel1.Width, Panel1.Height);
- gluPerspective(60, Panel1.Width/Panel1.Height, 1, 128);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity;
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- GLForm.Caption:= floatToStr(FPS);
- glDrawScene;
- SwapBuffers(DC);
- Done := False;
- end;