Страниц: 1 2 [3]
  Печать  
Автор Тема: OpenGL в QNX/Photon : С чего начать?  (Прочитано 28669 раз)
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #30 : Марта 29, 2011, 04:08:49 pm »

У меня такое, когда в настройках видео-режима курсор sw
Записан
Deatz
Участник
*
Offline Offline

Сообщений: 47


Просмотр профиля
« Ответ #31 : Декабря 13, 2011, 01:37:52 pm »

Я правильно понял - даже если видеокарта поддерживает несколько слоёв, что позволяет запустить GLES-приложение в отдельном окне под Фотоном, то оно будет иметь только одно это окно? Т.е., сделать viewport, в котором отображается графика, и панели инструментов в соседнем окне того же приложения не получится?
Записан
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #32 : Декабря 13, 2011, 01:52:38 pm »

У меня в одном окне и графика и кнопки. Использую один слой, т.к. не все драйвера корректно работали с несколькими (qnx6.4.0). Графику выводил в gf_context, который блитил на экран по таймеру в raw виджете.
« Последнее редактирование: Декабря 13, 2011, 01:54:58 pm от qnxloder » Записан
Deatz
Участник
*
Offline Offline

Сообщений: 47


Просмотр профиля
« Ответ #33 : Декабря 13, 2011, 02:21:58 pm »

У меня в одном окне и графика и кнопки. Использую один слой, т.к. не все драйвера корректно работали с несколькими (qnx6.4.0). Графику выводил в gf_context, который блитил на экран по таймеру в raw виджете.

0_o

Вероятно, вопрос про производительность неуместен:-)

А размер у блитируемой картинки большой был?
Записан
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #34 : Декабря 13, 2011, 03:46:54 pm »

Про производительность не скажу, т.к. сравнить не с чем было, но вполне устраивала.
1100*1100
А просто блитинг картинки такого размера с частотой 10Гц загружал процессор на 1-2% (intel 865, 700MHz, devg-extreme.so)
Записан
Deatz
Участник
*
Offline Offline

Сообщений: 47


Просмотр профиля
« Ответ #35 : Декабря 13, 2011, 04:11:33 pm »

Про производительность не скажу, т.к. сравнить не с чем было, но вполне устраивала.
1100*1100
А просто блитинг картинки такого размера с частотой 10Гц загружал процессор на 1-2% (intel 865, 700MHz, devg-extreme.so)

Хм... А как создать gf_context? Где об этом можно почитать?

В винде у меня нечто похожее: создаю контекст вызовом wglCreateContext, затем вызываю wglMakeCurrent, дальше идёт вывод графики, а в конце работы программы вызов wglDeleteContext. Графика выводится в специальный контекст, а для обновления картинки на экране используется SwapBuffers, в качестве параметра принимающая контекст окна, в котором её нужно отобразить.
Записан
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #36 : Декабря 13, 2011, 04:21:01 pm »

В хелпе:
gf_surface_create, gf_context_create,

А дальше так же:
eglGetDisplay, eglInitialize, eglChooseConfig, eglCreateContext, eglCreatePixmapSurface, eglMakeCurrent...
Записан
Deatz
Участник
*
Offline Offline

Сообщений: 47


Просмотр профиля
« Ответ #37 : Декабря 13, 2011, 04:32:52 pm »

В хелпе:
gf_surface_create, gf_context_create,

А дальше так же:
eglGetDisplay, eglInitialize, eglChooseConfig, eglCreateContext, eglCreatePixmapSurface, eglMakeCurrent...


Ok, спасибо. Пойду курить мануал по этим функциям. А вывод на экран производится похожим образом (я имею в виду swapbuffers)?
Записан
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #38 : Декабря 13, 2011, 04:44:58 pm »

eglSwapBuffers у меня отрисовывает в surface, а затем PgContextBlitArea(dc, &rsrc, NULL, &rdst);
NULL это и есть экран.  Где dc=PdCreateOffscreenContextGF( surface ) при создании surface
« Последнее редактирование: Декабря 13, 2011, 04:47:11 pm от qnxloder » Записан
Страниц: 1 2 [3]
  Печать  
 
Перейти в: