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)

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