問題タブ [glx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
76 参照

x11 - アプリケーションがローカルXサーバーに接続されているかどうかを判断する簡単な方法はありますか?

GLXコンテキストを作成するときは、直接レンダリングするかどうかを指定する必要があります。直接レンダリングはパフォーマンス上の利点を提供する場合があるため、それを使用することをお勧めしますが、リモートXサーバーでは使用できません。

アプリケーションがローカルサーバーに接続されているかどうかを判断するための簡単で信頼できる方法はありますか?

0 投票する
1 に答える
380 参照

c - X呼び出しでGLXバックバッファにレンダリングしますか?

私はGLXとxlibで遊んでいますが、openGLバッファー上でストレートX呼び出しを使用してレンダリングすることに興味があります。glxイントロは明確に次のように述べています。

GLX拡張Xサーバーは、ビジュアルのサブセットをOpenGLレンダリングで使用できるようにします。これらのビジュアルで作成されたドローアブルは、コアXレンダラーやすべてのコアXビジュアルと互換性のあるその他のX拡張機能を使用してレンダリングすることもできます。

そして、実際、私はいくつかの虹の効果で色付けされた単純なクワッドをレンダリングし、xlib呼び出しでその上に描画することができます。 ただし、GLXはXウィンドウをバックバッファで拡張します。バックバッファは、ウィンドウに直接レンダリングする前にフロントにスワップする必要があります。私の質問は、openGLが完了した後にXを使用してバックバッファにレンダリングし、そのバッファを前面にスワップして、openGLとXグラフィックの両方でちらつきのないアニメーションを作成することは可能ですか?

0 投票する
1 に答える
7022 参照

opengl-es-2.0 - Opengl ES 2.0 を使用しない Libgdx

できれば、作成を開始した新しい 3D ゲームに OpenGL ES 2.0 を使用したいと考えています。とにかく、私は2010年に購入したUbuntu PC(最上位ではありませんがまともな)で開発しています.

Gdx.graphics.isGL20Available() は false を返します。私のドライバーは 3.3.0 をサポートしていると確信しています。glxinfo から受け取ったものは次のとおりです。

そして、バージョン文字列や拡張機能とは関係のない多くのことがあります。OpenGL ES 2.0 に必要なすべての拡張機能があり、ドライバーは 3.3.0 に更新されています (OpenGL 3.0->2.0 ES 程度)。私のソフトウェアラスタライザーが古いからですか?もしそうなら、おそらく他にも同じ状況にある人がいるでしょう (1.1 を過ぎて更新された Windows インストールはそれほど多くないと思います)、私もそれらをサポートしたいと思います。考えられる最善の解決策は何ですか?

0 投票する
6 に答える
11645 参照

c++ - X11 / GLX-フルスクリーンモード?

Linuxアプリケーション(この場合はスクリーンセーバー)を作成しようとしていますが、ウィンドウを全画面表示にするという単純なタスクに関する情報を見つけるのは非常に困難です。既存のスクリーンセーバーのコードでさえ、それらがどのようにそれを管理するかについては言及しておらず、私はまだのような明白な機能を見ていませんXRemoveDecoration()

何度もいじくり回した後、私はデスクトップと同じサイズのウィンドウを作成することができました。

しかし、それはタイトルバーと境界線を取り除くために何もしません。明らかに方法があることは知っていますが、他の大規模なライブラリが上に投げられることに依存しない、その方向を指しているものはまだ見つかりません(既存のスクリーンセーバーは間違いなく使用していません)。

編集:私の投稿から情報を削除しないでください。既存のスクリーンセーバーがオプションのライブラリを使用していないことを明示的に指摘したのには非常に理由があります。これは、過去1日のほとんどの期間ソースコードを分析してきたためです。

私は、質問に最も直接的に答え、一般的なアプリケーションに適用される答えを選択しました。

xscreensaversを調査しているこの質問を見つけた場合は、同じことが当てはまります。はい、xscreensaverには独自のAPIがあります。これは複雑で、実際にはより多くのコード行を記述する必要があります(はい、真剣に)。スクリーンセーバーにOpenGLが必要な場合は、別のAPI(xlockmore、競合システム)と、それをxscreensaverに変換する互換性レイヤーを使用する必要があります。

ただし、xscreensaverは、仮想ルートウィンドウ(vroot.hを調べる)をスクリーンセーバーとして使用できるすべてのプログラムを実行できます。ですから、私のアドバイスはそれを行うことです-より多くの制御、制限のないAPI、そしてより優れた移植性が得られます。(私が見た1つの例は、同じファイルでLinuxまたはWindows用にコンパイルすることもできます!)

0 投票する
1 に答える
2035 参照

c++ - XCreateWindow() の呼び出し時に GLX エラーが生成される XLib

元の投稿から編集および簡略化:

次のエラーが表示されます。

私の観点から以下のコードを使用すると、呼び出し時にコードがウィンドウオブジェクトでクラッシュします(以下を参照)XCreateWindow()

アプリ オブジェクト

ウィンドウ オブジェクト

ogldevice オブジェクト

運転者

Fedora 14、RHEL 6.1、および Ubuntu 10.04 LTS で実行すると、同じエラーが発生します。これは、私が渡している glx 属性に問題があると私に信じさせますglxChooseVisual

0 投票する
1 に答える
1746 参照

c++ - GLXをリンクする方法は?

LinuxベースのシステムでGLXをリンクするためのコンパイラフラグを見つけようとしています。これまでのところ、私は(qt Creatorで):

しかし、それでも私は得られるglxChooseVisual was not declared in this scopeので、コードをコンパイルできなくなります。

0 投票する
1 に答える
1171 参照

c - glXCreateContextAttribsARBが見つかりません(OpenGL 4.2ドライバー、GLX 1.4の場合)

glXCreateContextAttribsARB不思議なことに、私はGLX 1.4を持っているにもかかわらず、リポジトリに持っていないようです。

これについて何か合理的な説明があるのだろうか?これは一般的な問題ではありません。

glxinfo

明らかに、バッファバインディング、、ARBおよびその他すべての優れた機能がサポートされていますが、なぜglXCreateContextAttribsARBですか?

さらに奇妙なことに、私持っているのはglXCreateContextAttribsARBPRoc、それが代替手段として役立つかどうか知りたいのですが。

これは、たとえば次のようにコンパイルされます。

0 投票する
2 に答える
815 参照

c++ - 複数のモニターで GLX を使用する RHEL -- OpenGL、XLib、および複数のモニター (スレッドを使用)

私が直面している問題は、単一のスレッドで基本的なプリミティブを適切にレンダリングする glx ベースのアプリケーションがあることです。両方の画面間で XWindow を移動でき、レンダリング ループが続行されます。ただし、アプリケーションの一部にスレッドがある場合、openGL 呼び出しを行ったり、他のスレッドで XWindow に触れたりしなくても、XWindow をある画面から別の画面に移動すると、描画するグラフィックスのメイン スレッドが失われます。

私が行う最初の関数呼び出しは XInitThreads であるため、X11 がスレッド セーフであることはわかっています。私が言ったように、これは 1 つのスレッドでプリミティブを描画するときに機能しますが、1 つ以上のスレッドを追加すると機能しません。スレッドは、ソースにアクセスできないライブラリにあります。X11 を使用してコードのウィンドウ部分を作成するように求められています。

これを修正するには、どのようなことを探す必要がありますか?

また、すべての glcall は、ライブラリ内から呼び出したスレッドで発生することが保証されていることに注意してください。


アップデート

0 投票する
1 に答える
583 参照

c - XCreateColormap の呼び出しがセグメンテーション違反を作成する

何らかの理由で、私XCreateColormapの XLib への呼び出しでセグメンテーション違反が発生しています。面白いことに、私が使用したコードのほとんどは、ネット上で見た XLib と GLX を使用してウィンドウと OpenGL コンテキストを作成する方法を示すコードとほとんど同じです。

詳細については、 という構造体がありますOVI_UnixDisplayData。これは基本的に、ウィンドウを作成してコンテキストを割り当てるために使用される、関連するすべての X Window/GLX データのコンテナーとして機能します。最初に、コンテキストを作成し、そのデータ構造体へのポインターを返すように設計された関数があります。その構造体は just dat(for data) と呼ばれます。

SegFaultの発生

自分のバージョンの GLX をチェックしたところ、1.4 として返されたので、それが問題になることはありませんその上、私のデバッガーではdat->visualinfo->visual->ext_data、 0x0 の値を保持していることを知っているので、それが何か関係があっても驚かないでしょう。問題は、私がその方法がわからないことであり、適切に初期化するためにどの関数を呼び出すべきかがわからないことです。その動作は、リンクされた-リスト。

誰かがこれに光を当てることができますか? 情報が必要です.Google検索で、この関数呼び出しからセグメンテーション違反を経験している他の人に関するいくつかの結果が得られましたが、私のような理由でこれが起こった人は誰もいません.

何か意味があるとすれば、GLX 1.4 と OpenGL 4.2 を実行しています。

0 投票する
1 に答える
6601 参照

c - OpenGL レンダリング コンテキスト 「失敗した要求 152 (GLX) のオペコード」を生成します (Mesa 8.0 - OpenGL 3.0、Linux)

これは大きな問題です。最初に、私は XLib API について少し知っていますが、何かを行う前に実際に OpenGL レンダリング コンテキスト (3.0) を作成できることをテストして確認したかったので、コピーして貼り付けましたいくつかのテストコードを実行しました。

コードを実行すると、出力は次のようになります。

さらに、後続のglxinfoプロデュースの呼び出し

この仕様によると、私の可能性は機能するはずです-正しいですか? そうでない場合、これを変更するために私にできることはありますか? このような問題があることについて私が読んだフォーラムの投稿は、通常、コンテキストを初期化しようとするときに OpenGL 3.x の適切な実装を欠いている人々によるものであり、その結果、私がテストしたコードと同様の出力が得られます。 .

また、自分のディストリビューション用のさまざまな X11 パッケージを検索して、偶然何かが欠けているかどうかを確認しました。もちろん、これは無駄でした。インストール/変更を行った結果、事態が悪化したか、単に機能しなかったからです。

xorg.conf

実行コード

これがどのように起こっているのか、私はかなり困惑しています。誰かがこの問題に対する洞察や解決策を提供してもらえますか?