- procedure TForm1.SetupGL;
- begin
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- end;
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- DeactivateRenderingContext;
- DestroyRenderingContext(RC);
- ReleaseDC(Handle, DC);
- end;
- procedure TForm1.Render;
- var
- bmp: Tbitmap;
- begin
- SetupGL;
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glViewport(0, 0, screenWidth, screenHeight);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glOrtho(0, screenWidth, 0, screenHeight, 1000, -1000); // Origin in lower-left corner
- //blaues 4-eck
- glBegin(GL_QUADS);
- glColor3f(0, 0, 1); glVertex2f(800, 100);
- glColor3f(0, 0, 1); glVertex2f(1000, 100);
- glColor3f(0, 0, 1); glVertex2f(1000, 300);
- glColor3f(0, 0, 1); glVertex2f(800, 300);
- glEnd;
- {weiße box}
- glBegin(GL_QUADS);
- glColor4f(0, 1, 1, 1); glVertex2f(600, 500);
- glColor4f(1, 0, 1, 0.75); glVertex2f(800, 500);
- glColor4f(1, 1, 0, 0.5); glVertex2f(800, 800);
- glColor4f(1, 0, 0, 0); glVertex2f(600, 800);
- glEnd;
- //glDisable(GL_BLEND);
- //glEnable(GL_DEPTH_TEST);
- SwapBuffers(DC);
- bmp := TBitmap.Create;
- try
- GetBitmapFromOpenGL(bmp);
- Image1.Picture.Assign(bmp);
- finally
- FreeAndNil(bmp);
- end;
- end;