問題タブ [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 - glXCreateContextAttribsARB: fb 構成の互換性
OpenGL doc は次のように述べています
glXCreateContextAttribsARB が成功すると、コンテキストを OpenGL 仕様で定義された初期状態に初期化し、そのハンドルを返します。
<config>
このハンドルは、コンテキストの OpenGL API バージョンによって課せられる制約に従って、 と互換性のある任意の GLX サーフェス (ウィンドウ、ピックスマップ、または pbuffer) にレンダリングするために使用できます。
異なるフレームバッファ構成の互換性を確認するにはどうすればよいですか?
opengl - このスレッドのjavax.media.opengl.glu.GLU.getCurrentGLに現在のOpenGLコンテキストはありません
数か月前に「GL2gl」でOpengl(JOGL)を学び始めたときに、同様の問題が発生しました。その後、解決方法を発見しました(「gl」に関係するものはすべて、ディスプレイ内から呼び出す必要があります/ initメソッド)。
しばらくして、「GLU glu」(gluOrtho2D用)も使用する必要がありました。したがって、この問題が再び発生しました。しかし、このエラーにもかかわらずプログラムは正常に実行されていたので、それほど大きな問題ではなかったとしましょう。
残念ながら、今この問題はいくつかの厄介な影響を及ぼしているようです..だから私は本当にそれを解決したいと思います。
ここにいくつかのコードがあります:
面白いのはそれです:
「glu.gluLookAt(0、0、1、0、0、0、0、-1、0);」のような他のglu呼び出しが表示されます。そこに問題が発生したことはありません
別のスレッド( "glcanvas.display")からリフレッシュを呼び出した場合にのみ発生します
ディスプレイで毎回初期化する、またはコンテキストを強制するなど、すでに多くの試みを行いました。
/li>
しかし、これまでのところ何も機能していません。
スレッド"AWT-EventQueue-0"の例外javax.media.opengl.GLException:javax.media.openglのjavax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175)で、このスレッドに現在のOpenGLコンテキストがありません.glu.GLU.gluOrtho2D(GLU.java:1344)
c++ - ランタイム中にOpenGLコンテキストからD3D/DXコンテキスト(または別のコンテキスト)に切り替える
編集: SDLを使用するか、Window、Linux、Mac、iOS、Androidで実行される、これを行うためのビルド済みライブラリはありますか?
現時点では、コンテキストを変更する方法が非常に優れたデザインであるかどうかはわかりませんが、完全には完成していません。私は自分の時間を無駄にすることを本当に心配しています。ウィンドウ管理とイベント処理にSDLを使用しています。
私は現在、これを管理するためにSDL(具体的にはSDL 2)をクラスでラップしています。これらは私のクラスとそれらが行うことです:
- ウィンドウ-ウィンドウについて説明します
- WindowContext -Windowのコンテキストを記述します(抽象クラス)
- WindowDelegate-コンテキストがいつ変更されたか、ウィンドウがいつ開閉するかなどを決定するために使用されます。
- WindowEventListener-ウィンドウからのイベントをリッスンします(関数をコールバックするのではなく、ポーリングに固執する必要があるかどうかはわかりません)
とにかく、これがどのように機能するかの例です:
注:ipoint2は2Dポイントです
そして、次のように呼び出すことで、コンテキストを途中で変更できます。
これを行うためのより簡単な方法はありますか、またはより効率的な方法を言う必要がありますか?
opengl-es - LibGDX での OpenGL ES コンテキストの損失
私は LibGDX を使用するアプリに取り組んでおり、ユーザーがアプリを離れてアプリに戻ったときにコンテキストが失われることによって生じるさまざまな問題に取り組んでいます。一般に、これは大きな問題ではありませんが、アプリの使用中に、アプリ自体でカスタム テクスチャを作成して、いくつかの異なる領域で使用することがあります。
これらのテクスチャは、ユーザーがアプリケーションに戻ったときのために絶対に保存する必要がありますが、そうするための最善の方法が何であるかはわかりません。では、単純に、必要なときに簡単に元に戻すことができないテクスチャを保存する適切な方法は何でしょうか?
c++ - レンダリング中にテクスチャをロードする (OpenGL)
画面にアニメーションの読み込み画面 (OpenGL でレンダリング) が表示されている間に、OpenGL テクスチャを含むいくつかのメッシュを読み込みたいと考えています。
したがって、2 つのスレッドから同じ GL コンテキストにアクセスできないため、もちろん機能しない 2 番目のスレッドで読み込みを行います。
私は SDL 1.2 を使用していますが、すべてがプラットフォームに依存しない必要があるため、wgl のようなものは使用できません。
私にはどのような可能性がありますか?
c++ - freeglut window init + glew 3.0 コンテキストの作成が機能しない
私は freeglut でウィンドウを作成しようとしています。次に glew を使用して 3.2 コンテキストを作成し、最新の OpenGL 関数 (c++ と Windows PC を使用) を使用します。私の問題は、コンテキストの作成 (freeglut init の前後に実行しようとした) が機能していないようで、glCreateShader のような関数を使用しようとするたびにアクセス違反が発生することです。
私が使用するコードは次のようになります (int main(int argc, char **argv) メソッドの開始位置にあります):
また、 glew init コードは Web サイトから 1:1 でコピーされます。私の間違いがあまり明白でなく、誰かが私を助ける時間を見つけてくれることを願っています.
qt - QT 共有 OpenGL コンテキスト
複数の QGLWidget で単一のコンテキストを共有したいのですが、QGLWidget を作成し、bindTexture() を使用してテクスチャをバインドし、最初のものと同じフォーマットで 2 つ目の QGLWidget を作成し、コンストラクタの 1 つを使用した後、これを機能させることができませんこれは、最初のウィジェットを共有ウィジェットへのポインターとして受け取ります。新しいウィジェットを作成しますが、テクスチャは共有されず、 isShared() メソッドを使用してクエリを実行すると、結果として常に false が返されます。
私が正しいことをしているかどうかを教えてくれる簡単な例はありますか!
python - PyOpenGL で SceneGraph をレンダリングする
OpenGLContext を使用して、VRML ファイルを SceneGraph オブジェクトにロードしています。残念ながら、私の人生では、SceneGraph をレンダリングする方法を示す例を見つけることができません。
でコンテキストを作成しましたtestcontext.getInteractive()
が、次はどうすればよいでしょうか? SceneGraph をレンダリングするにはどうすればよいですか?
windows - wglCreateContext が INVALID_OPERATION 例外をスローする
OpenGL ウィンドウの作成時に実行される最初のイベント ハンドラーが OnCreateであると仮定して、ここで codeguru から COpenGLControl クラスをダウンロードしたとします。このクラスのエラーをキャッチしようとしました。ダイアログの .h および .cpp ファイルでウィンドウを作成するために使用されるコードは次のとおりです。
MyOpenGLTestDlg.h
MyOpenGLTestDlg.cpp
OnCreate
関数が呼び出されたと思います。COpenGLControl m_oglWindow;
実際、コード行によってこの関数が呼び出されると思います! しかし、よくわからないので、これについて少し教えていただければ幸いです。
とにかく、私はクラスに多くの変更を加えていません:
OpenGLControl.h
OpenGLControl.cpp
GLenum error13 = glGetError();
ご覧のとおり、スローされる可能性のあるエラーをキャッチするために直後にコードを書きました。hrc = wglCreateContext(hdc);
はい、error13 の値は、1282
つまり、適切に作成されていないINVALID_OPERATION
と思いhandle for OpenGL rendering context
ます!
さらに、 との値を確認するhdc
とhrc
、次のことがわかります。
hdc -> 未使用 = ??? (エラー: 式を評価できません)
hrc -> 未使用 = 0
なぜそうなのかを知るのを手伝ってもらえますか?問題は何ですか?
java - onPause() の後に openGL 関数を呼び出す
OpenGL ES 1.1 を使用する Android Java アプリケーションがありますが、次の問題が発生しました: アプリケーションが最小化されている場合onPause()
、アクティビティで が呼び出されます。この時点で、GL テクスチャ (レンダリングしたもの) の 1 つを保持し、openGL コンテキストが破棄されている間、メモリに保存したいと思います。その後、アプリケーションが再開されると、テクスチャを元に戻すことができます。ただし、openGL テクスチャを取得するには、レンダリング スレッドでのみ実行できる GL コマンドが必要です。レンダリング スレッドは、停止する直前にレンダリングの繰り返しを行う場合と行わない場合があります。
これを処理する既知の方法はありますか?