問題タブ [openglcontext]
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.
opengl - 独自のopenGLコンテキストを作成し、それをGLCanvasにバインドするにはどうすればよいですか?
だから私がJavaを理解するようになったとき
メソッド私は独自のレンダリングメソッドの作成に移りましたが、バッファ戦略とグラフィックスを「取得」する方法について学ぶ必要がありました
だから今私はopenGLを学んでいるので、私はその方法を理解しなければなりません:
そして今、私は独自のレンダリングメソッドを作成したいと思います。これまでのところ、私は常に1つの例外に直面しています。
スレッド「メイン」の例外javax.media.opengl.GLException:このスレッドには現在のOpenGLコンテキストがありません
編集:質問:外部でglDraw呼び出しを行いたい場合
メソッド、GLCanvasのglContextが「最新」であることを確認するにはどうすればよいですか
できればコード例として、私がAPIを調べ、グーグルを広範に使用したので、皆さんがすでにここに置くほど親切な多くのリンクは、私が以前に見つけたものであり、私はまだ空白を描いています...文字通り!私が持っている最も近いのは、「現在のコンテキストがない」例外をスローしなかったが、画面が永続的に真っ暗になったときでした。
opengl - OpenGL と複数の GPU - 一般的な可能性
マルチウィンドウ OpenGL アプリケーションを複数の GPU で同時に実行することは可能ですか? より具体的に言うと、それぞれが GL コンテキストを相互に共有する 2 つのウィンドウを持つアプリケーションを作成したとします。これらのウィンドウの 1 つをディスプレイ 1 (GPU 1 で実行) からディスプレイ 2 (GPU 2 で実行) に移動すると、実際に機能しますか? コンテキストを共有するだけでうまくいくでしょうか?
私の最初の推測はノーでしょう。これが本当に簡単ではない場合、これを達成する方法はありますか? また、2 つの GPU が同じドライバーによって制御されているかどうかにも依存すると想像できます (さらに悪いことに、マシンに ATI と nVidia カードがあり、どちらも異なる GL バージョンをサポートしている場合)。
このトピックに関する洞察をいただければ幸いです。これは、簡単なグーグル検索では何も見つからないため、純粋に情報提供のみです。可能性を知っている人はいますか?
編集: ところで、残念ながら、現時点では複数の GPU を使用できるマシンを持っていないので、少しテストします。
opengl - コンソールの openGL コンテキスト
openGL の特定の機能を使用したいのですが、ビジュアル コンテンツのレンダリングに関連するものは何もありません。依存関係なしで作成する方法はありますか (Windows や一部のパッケージ [SDL、SFML、GLUT] には依存しません)。私が使用している GLEW のように、外部ライブラリを持たないライブラリのみが許可されます。
java - GLSurfaceView コンテキストをスレッドに渡す
GL Renderer を「DIRTY」に設定し、スレッドを使用して FPS を制御したいのですが、何らかの理由でrequestRender
呼び出しがすべてスキップされているようです。これは、スレッドが適切なコンテキストを取得していないことに関係している可能性があると感じています。GLSurfaceView
コンテキストを他のスレッドに渡すための良い習慣を知っている人はいますか?
これが私のスレッドです:
そして、これが私の表面ビューのコンストラクタです...
c++ - VAO なしのシェーダー属性ごとの VBO、または別のアプローチ?
アプリケーションでさまざまな「ネストされた」コンテキストを使用しています (シェーダーとジオメトリの共有用)。VAO はコンテキスト間で共有できないため、使用できません。
私のメッシュ データは、1 つの VBO に一意の頂点の「プール」として保存され、別の VBO には面を構成するインデックスが保存されます。現在、CAD アプリでワイヤフレーム レンダリングにこれを使用していますが、フラット シェーディング モードを追加したいと考えています。そのためには、面法線が必要です。
頂点法線が必要な場合は、データを頂点位置データに追加するだけですが、ここではそれを行うことはできません。これは、レンダリングされる面に応じて頂点の面法線が異なるためです。理想的には、顔の法線とインデックスを保持する別の VBO ペアを作成したいと考えていますが、VAO なしでは 2 つの VBO を同じターゲットにバインドできません - それらが異なる属性で使用されている場合でも。
通常のルートは、複数の VBO を同じターゲットに割り当てることができる VAO を使用することですが、ジオメトリ コンテキストが共有されており、VAO が共有されていないため、それらを使用できません。この問題の代替ソリューションはありますか?
java - コンテキストを onDrawFrame(GL10 gl) に渡す方法はありますか?
Java で Android の Open GLES でゲームを設計しています。
明らかに、多くのテクスチャを使用しているため、すぐにメモリが不足します。
私は Android と Java にまったく慣れていませんが、この問題を回避する最も簡単な方法は、現時点では必要のないビットマップを使用してオブジェクトを破棄し、ガベージ コレクターにオブジェクトが占有していたメモリを再利用させることだと考えました。その後、それぞれのテクスチャが再び必要になった後の段階で、これらのオブジェクトを再作成します。
このようなもの:
次に、背景オブジェクトにテクスチャが必要な場合:
それは、コンテキスト (BitmapFactory を介してテクスチャをロードするため、クラスのバックグラウンドが機能するために必要なコンテキスト) がonDrawFrame(GL10 gl)
、メインのゲームループがあり、必要な関数に渡されないことを除いて、かなり簡単に思えます!
GL10 gl の後に 2 番目のパラメータとしてコンテキストを追加しようとすると、エラーが発生します - これは不可能のようです。
コンテキストを onDrawFrame に渡す方法、またはコンテキスト オブジェクトをメモリからクリアしてから元に戻す方法を知っている人はいますか?
opengl-es - ピクセルの色が正確でない
現在、アプリケーションでカラーピッキングを使用しています。これは PC で動作しますが、さまざまなデバイスで動作させるのに問題があります。
これはおそらく、デバイスによってコンテキストの設定が異なるためです。たとえば、私の知る限り、PC の色は 888 に設定されていますが、デバイスのデフォルトは 565 です。
色データを適切に取得できるように、OpenGL で現在のピクセル/色形式を取得する方法があるかどうか疑問に思っていましたか?
これは、私が使用している機能で、PC 上で正常に動作します。
何か案は?
c++ - wglDeleteContext アクセス違反
MFC を使用する Visual C++ の大規模なソリューションを扱っています。変更前はすべてうまく機能していました。ダイアログを変更して新しいダイアログを追加したとき。プログラムは、次の最初の行で終了時に例外を発生させ始めました:
ファイル RenderDevice.cpp にあります。
私は TortoiseSVN を使用しているため、すべての変更を元に戻し、ソリューションでプロジェクトを再コンパイルしました。しかし、問題は残りました。
誰が何が間違っているのか教えてもらえますか?