OpenGL - рендеринг непосредственно в растровое изображение

Я делаю приложение, в котором есть несколько маленьких окон и элементов управления (так что это 2D-рендеринг), и я хотел бы визуализировать каждое окно и элемент управления в его собственном растровом изображении (их не так много). Вот что есть:

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;

Процедура визуализации:

  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);

Но нет выхода.
Если я используюMainForm.Canvas.Draw(0, 0, BMP); тогда появится белый прямоугольник.

Я хочу делать рендеринг на растровых изображениях, потому что я могу многое сделать с растровыми изображениями (рисовать на нем графику, рисовать текст, размытие), но если есть другой способ сделать закадровый рендеринг, тогда все в порядке ...

Итак, как мне настроить приложение для рендеринга за пределами экрана?

Ответы на вопрос(1)

Ваш ответ на вопрос