OpenGL - direkt in Bitmap rendern

Ich erstelle eine Anwendung, die eine Reihe kleiner Fenster und Steuerelemente enthält (also 2D-Rendering), und ich möchte jedes Fenster und Steuerelement in einer eigenen Bitmap rendern (es gibt nicht so viele davon). Das ist was haben:

uses dglOpenGL;
...
var BMP: TBitmap;
    DC, RC: HDC;
...
function TMainForm.Init: Boolean;
begin
  Result := InitOpenGL;
  if Result = True then
  begin
    BMP := TBitmap.Create;
    BMP.PixelFormat := pf24bit;
    BMP.Width := 1280;
    BMP.Height := 1024;

    DC := (BMP.Canvas.Handle);
    RC := CreateRenderingContext(DC,
                                 [opGDI, opDoubleBuffered],//tried changing, didn't help
                                24,
                                24,
                                0,
                                0,
                                0,
                                0);
    ActivateRenderingContext(DC, RC);

    glClearColor(0.27, 0.4, 0.7, 0.0);//Light blue
    glViewport(0, 0, 1280, 1024);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    glOrtho(0, 1280, 0, 1024, -1, 10);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
  end;
end;

Rendervorgang:

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  //Red quad
  glColor3f(1, 0, 0);
  glBegin(GL_QUADS);
    glVertex2f(100, 100);
    glVertex2f(1280-100, 100);
    glVertex2f(1280-100, 1024-100);
    glVertex2f(100, 1024-100);
  glend;

  //Output
  SwapBuffers(DC);

Es erfolgt jedoch keine Ausgabe.
Wenn ich benutzeMainForm.Canvas.Draw(0, 0, BMP); dann erscheint ein weißes Rechteck.

Ich möchte Bitmaps rendern, weil ich mit Bitmaps eine Menge Dinge machen kann (Grafik darauf zeichnen, Text malen, Unschärfe), aber wenn es eine andere Möglichkeit gibt, Off-Screen-Rendering zu machen, dann ist es okay ...

Wie richte ich meine Anwendung für das Offscreen-Rendering ein?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage