OberonCore
https://forum.oberoncore.ru/

OpenGL
https://forum.oberoncore.ru/viewtopic.php?f=5&t=412
Страница 1 из 1

Автор:  PGR [ Понедельник, 19 Март, 2007 14:34 ]
Заголовок сообщения:  OpenGL

Поддерживается ли подсистемой Ogl с сайта http://www.zinnamturm.de
аппаратная поддержка OpenGL?

Автор:  Борис Рюмшин [ Понедельник, 19 Март, 2007 15:10 ]
Заголовок сообщения: 

Похоже у нас тут пока никто не пробовал. Проверите?

Автор:  PGR [ Понедельник, 19 Март, 2007 22:09 ]
Заголовок сообщения: 

С ходу не получилось. По умолчанию используется software rendering
через GDI. Попробую разобраться...

А аппаратной поддержки OpenGL пока получилось добиться через библиотеку GLUT (glut32.dll) с
выводом графики в отдельное окно.

Автор:  Иван Кузьмицкий [ Четверг, 19 Апрель, 2007 17:46 ]
Заголовок сообщения: 

PGR писал(а):
С ходу не получилось. По умолчанию используется software rendering
через GDI. Попробую разобраться...

А аппаратной поддержки OpenGL пока получилось добиться через библиотеку GLUT (glut32.dll) с
выводом графики в отдельное окно.


В подсистеме Ogl инициализация контекста OpenGL идёт через функцию WinApi.CreateCompatibleDC, видимо поэтому и выбирается софтварный рендерер.
Я хотел попробовать через GetDC, но что-то не пойму, как хэндл окна получить.

Автор:  PGR [ Суббота, 21 Апрель, 2007 17:45 ]
Заголовок сообщения: 

Хэндл окна находится в поле wnd типа Window из модуля HostWindows

Автор:  PGR [ Суббота, 21 Апрель, 2007 19:30 ]
Заголовок сообщения: 

Как я понял, фунция ChoosePixelFormat возвращает формат пикселей, поддерживаемый аппаратно только при установленном флаге PFD_DRAW_TO_WINDOW. Но при его установке функция SetPixelFormat возвращает ошибку, причем даже если ей передавать контекст самого окна, а не битмапа dib.

Контекст окна получаю так:
Код:
VAR dc: WinApi.HDC;
...
dc := f.rider(HostPorts.Rider).port.dc;

f: Views.Frame -- параметр процедуры Restore типа View

В описании SetPixelFormat сказано:
Цитата:
An OpenGL window has its own pixel format. Because of this, only device contexts retrieved for the client area of an OpenGL window are allowed to draw into the window. As a result, an OpenGL window should be created with the WS_CLIPCHILDREN and WS_CLIPSIBLINGS styles. Additionally, the window class attribute should not include the CS_PARENTDC style.


Наверное, придется влезать в модуль HostWindows и корректировать стили для создаваемых окон документов...

Вообще, как мне кажется, вся графика в BlackBox сильно привязана к GDI. Поэтому менять придется много чего...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/