|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Delphi XE2 64bit: проблемы с OpenGL-рендерингом на Bitmap
Давно и довольно успешно (начиная с Delphi7) работал фрагмент кода для вывода OpenGL графики на BitMap (этот фрагмент вызывается в ходе выполнения программы многократно, в цикле: из Bitmap-ов строится AVI-файл-мультик):
Код:
procedure TFormOpenGL.RenderToBitmap(const ABitmap: TBitmap); var FormatIndex: Integer; PFD: TPixelFormatDescriptor; lFDC: HDC; begin lFDC := ABitmap.Canvas.Handle; FillChar(PFD, SizeOf(PFD), 0); With PFD do begin nSize := SizeOf(PFD); nVersion := 1; dwFlags := pfd_Draw_to_Bitmap or pfd_Support_OpenGL; iPixelType := pfd_Type_RGBA; cColorBits := 24; cDepthBits := 32; iLayerType := pfd_Main_Plane; end; FormatIndex := ChoosePixelFormat(lFDC, @PFD); SetPixelFormat(lFDC, FormatIndex, @PFD); FGLContext := wglCreateContext(lFDC); wglMakeCurrent(lFDC, FGLContext); MyPaint(True); ............. end; 1) Это моя ошибка, или ошибка нового компилятора? Повторюсь. Крах программы происходит случайным образом, на разных компах по-разному. Сразу скажу: никаких присвоений целым переменным значений указателей я не использую никогда (это могло давать ошибки на 64битном компиляторе). 2) Нет ли примера вывода на Bitmap другими функциями OpenGL, скажем - рисования не текстуре и далее- сохранения текстуры как Bitmap, или чем то ещё более правильным и не таким глючным, как прямой вывод на невидимый Bitmap? |