- ...
- ProCeDure TPanelGL.DrawScene;
- BEGIN
- rotate:=rotate+0.1*rendertime;
- glRotatef(rotate,0,0,1);
- textures[0].Bind();
- glBegin(GL_QUADS);
- glTexCoord2f(0,0); glVertex3f(-1,-1,0);//pkt links unten
- glTexCoord2f(0,1); glVertex3f(-1,1,0);//pkt links oben
- glTexCoord2f(1,1); glVertex3f(1,1,0);//pkt rechts oben
- glTexCoord2f(1,0); glVertex3f(1,-1,0);//pkt rechts unten
- glEnd;
- END;Procedure TPanelGL.GetTextures;
- BEGin
- ActivateRenderingContext(DC, RC);
- textures[0]:=TGLBMP.Create();
- textures[0].LoadImage('verlauf.bmp');
- textures[0].GenTexture();
- DeActivateRenderingContext;
- END;
- procedure TPanelGL.FormCreate(Sender: TObject);
- var
- DummyPal : HPalette;
- begin
- ...
- DC := GetDC(PlayGround.Handle);
- RC := CreateRenderingContext(DC, [opDoubleBuffered], 16, 0, 0, 0, 0,DummyPal);
- ActivateRenderingContext(DC, RC);
- glClearColor(0,0,0,0);
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHTING);
- glEnable(GL_NORMALIZE);
- glEnable(GL_COLOR_MATERIAL);
- glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
- DeActivateRenderingContext;
- GetTextures;
- end;
- procedure TPanelGL.FormDestroy(Sender: TObject);
- begin
- DestroyRenderingContext(RC);
- end;
- procedure TPanelGL.ApplicationEvents1Idle(Sender: TObject;
- var Done: Boolean);
- begin
- ActivateRenderingContext(DC, RC);
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- glViewport(0, 0, PlayGround.ClientWidth, PlayGround.ClientHeight);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity;
- gluPerspective(45, PlayGround.ClientWidth/PlayGround.ClientHeight, 0.1, 1024);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity;
- glTranslatef(0,0,-10);
- DrawScene;
- Rendertime:=GetTickCount()-Lasttime;
- Lasttime := GetTickCount();
- inc(frames);
- SwapBuffers(DC);
- DeActivateRenderingContext;
- Done := False;
- end;
- ...