Ошибка с LWJGL на 64-битной Ubuntu (видеокарта ATI);Конфликт с X Windowing System? - PullRequest
0 голосов
/ 07 июля 2011

Итак, на 64-битной Ubuntu я работаю с LWJGL, но код, который отлично работал на Windows (и Mac, хотя я тестировал это гораздо меньше), имеет проблемы на моей новой машине.

Обычно, если я пытаюсь запустить полноэкранный режим, приложение оказывается в окне, а не переходит в режим просмотра, производительность очень низкая (примерно от 1/2 до 1/3 от того, что должно быть).

Как ни странно, редко (примерно в 5% случаев) все работает отлично, а производительность хорошая.

После некоторых исследований Google, похоже, это связано с проблемами в системе X Windowing. Я нашел статью здесь , в которой предлагается вызвать XInitThreads () в приложении перед настройкой чего-либо еще. К сожалению, как мне позвонить?

Я понимаю, что могу использовать

Process p = Runtime.getRuntime().exec("The system command goes here");

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

1 Ответ

1 голос
/ 08 июля 2011

К сожалению, вы не можете решить вашу проблему с exec.Процесс - в данном случае процесс JVM - должен выполнить этот вызов.Ссылка, на которую вы ссылаетесь, описывает неудачный факт, что JVM не делает это.Маловероятно, что вы можете представить это для себя.

Общение с X API - это фундаментальная деятельность JVM: именно так AWT реализован в этой среде.Поскольку JVM уже использует X для связи с дисплеем, вы не можете просто ввести один маленький дополнительный вызов.Место, необходимое для выполнения этого вызова, находится в середине кода инициализации X в JVM.

OpenJDK с открытым исходным кодом.Вы могли бы сделать свою собственную версию, но я не могу рекомендовать это.

...