Совместное использование VBO между несколькими QWidgets в JOGL - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь поделиться созданием четырех QGLWidget с одинаковым контекстом GL3, чтобы я мог разделить VBO между ними. Некоторое время я делал это только с одним виджетом, но он не был доступен другим. QGLWidget имеет параметр sharewith, который, насколько я понимаю, автоматически разделяет контексты между ними, но я не уверен, насколько это совместимо с JOGL.

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

Может ли кто-нибудь дать мне простой пример, чтобы получить эту функцию? Мне просто нужно создать четыре GLWidget для совместного использования контекста, все из которых запускаются из профиля GL3.

1 Ответ

0 голосов
/ 29 апреля 2011

Хотя я не использую JOGL, я делаю аналогичную вещь здесь и здесь .Основная идея заключается в том, что вы создаете скрытый QGLWidget, делаете его текущим и компилируете все ваши шейдеры, а затем передаете его как shareWidget в ваши дочерние видовые окна.Всякий раз, когда вы хотите загрузить геометрию, сделайте текущий скрытый QGLWidget и выполните ваши вызовы glBufferData - данные станут доступны для других контекстов области просмотра.

...