2011-07-07 12 views
0

64ビット版のUbuntuではLWJGLを使って開発していますが、Windows上ではうまく機能していたコード(Macでも、それほどテストはしましたが)は新しいマシンに問題があります。64ビットUbuntu(ATIグラフィックカード)でLWJGLを使用したバグ。 Xウィンドウシステムとの競合?

基本的には、フルスクリーンモードを開始しようとすると、アプリケーションがビューを引き継ぐのではなくウィンドウで終了するため、パフォーマンスが非常に遅くなります(約1/2から1/3程度)。

珍しいことに、まれに(時間の約5%)すべてが完全に機能し、パフォーマンスは良好です。

Googleでいくつかの調査をした後、X Windowingシステムの問題が原因であるようです。他のものを設定する前に、アプリケーションでXInitThreads()を呼び出すことを提案する記事hereが見つかりました。残念ながら、私はどのように電話をするのですか?

私は、システムコマンドを実行するために

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

を使用することができることを認識し、私は使用するコマンドを知りません。

答えて

1

残念ながら、execで問題を解決することはできません。このプロセス(この場合はJVMプロセス)は、その呼び出しを行う必要があります。参照するリンクは、JVMがそれを作成しないという不幸な事実を説明しています。あなた自身でこれを紹介することはほとんどありません。

X APIとの会話は、JVMの基本的なアクティビティです。AWTがこの環境でどのように実装されているかです。 JVMは既にXを使ってディスプレイと話しているので、ちょっとした追加呼び出しはできません。その呼び出しを行うために必要な場所は、JVMのX initコードの途中です。

OpenJDKはオープンソースです。あなたは自分のバージョンを作ることができますが、私はそれをお勧めできません。

+0

Hmm。コードで行う方法はありませんか?コマンド自体を発行するようにJVMプロセスに指示することはできませんか?それともセキュリティ機能ですか? – CodeBunny

関連する問題