В рамках более крупного проекта я пытаюсь реализовать средство, использующее JOGL, которое будет экспортировать 3D-рендеринг в растровые форматы. Мы делаем это, создавая GLJPanel и рисуя нужную ему сцену, затем извлекая растровое изображение. Все это прекрасно работает, если у системы есть хотя бы одно видимое окно на экране - не обязательно окно, содержащее панель, на которую мы рисуем.
Но если мы попытаемся сделать это без отображения окна, GLJPanel не будет рисовать. Проходя по источнику JOGL, я обнаружил, что он не будет отрисовываться, если у него нет действительного однорангового узла - по сути, если для него не был вызван addNotify (). В документации говорится, что addNotify () вызывается только тогда, когда панель становится частью иерархии видимого окна. Переход на GLCanvas не имеет большого значения - режим сбоя другой. WindowsOnscreenGLDrawable.realized не установлен, и это означает, что lockSurface возвращает LOCK_SURFACE_NOT_READY
, что приводит к сбою makeCurrent ().
Приветствуется любая помощь в создании Java-приложения, которое может создавать и экспортировать 3D-сцены без необходимости отображать его окно.