JOGL - использует ли OpenGL поток AWT для визуализации графики? - PullRequest
4 голосов
/ 27 октября 2011

Я делаю простую программу с Java OpenGL (jogl).В методе display () я печатаю имя потока, а вывод говорит, что это поток AWT.Разве OpenGL не использует свой собственный поток?

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

В основном это зависит от используемой вами версии.

Для ранних версий 1.0 и 1.1 jogl по умолчанию использовал другой поток для рендеринга.Для версии 1.1.1 было переключено по умолчанию на использование потока AWT.

Это можно контролировать вручную из командной строки, используя -Djogl.1thread=true для принудительного однопоточного рендеринга в потоке AWT или -Djogl.1thread=false для принудительного применениямногопоточный рендеринг (по одному на холст) вне потока AWT.

В более новой версии Jogl предусмотрен специальный набор инструментов NEWT, который будет выполнять рендеринг вне потока AWT.

The Jogl 1.0 /1.1.1 поведение потоков описано здесь: http://download.java.net/media/jogl/doc/userguide/ в разделе «Проблемы многопоточности»

Более подробную информацию о потоках NEWT можно найти здесь: http://jogamp.org/jogl/doc/NEWT-Overview.html

0 голосов
/ 27 октября 2011

Библиотеки OpenGL работают, подключаясь к собственному java Display и универсальному фрейму. Вы можете создать новый холст в потоке AWT, а затем создать новый поток для Display, установив новый холст в качестве displayparent в новом потоке, и отображение не будет работать в потоке AWT.

...