問題タブ [egl]
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.
android - surfaceview 90 を回転させるには?
Android 4.2でムービープレーヤーを開発していますが、サーフェスビューを90度回転させる方法、サーフェスビューを使用してデコードされたビデオをレンダリングするという問題に直面しています。一般的な使用との違いは、「windowManager」によってシステムビューとしてサーフェスビューを追加することです.addView(mysurfacetview)" をサービスに追加するため、surfaceview はデスクトップ上でフローティングすることができます。
ユーザーが横向きのフルスクリーン ビューを必要とするときはいつでも、私の一時的な解決策は、xml で定義済みの LANDSCAPE アクティビティを開始することです。
surfaceview を回転させるためのより良い解決策はありますか? サーフェスビューに添付された egl を使用しましたが、egl から回転することは可能ですか? ありがとう!
android - Android で OpenGL を使用しているときの自動バッファ クリア
フレームをインクリメンタルに描画したい特定の OpenGL アプリケーションを作成しています。このために、私が理解しているバッファの自動クリアを無効にしたいと思います。これは のデフォルトの動作ですGLSurfaceView.Renderer#onDrawFrame()
。誰かがこれを行う方法について私を助けてもらえますか? ネイティブ SDK を使用するのではなく、Java でアプリケーションを作成する必要があります。
私はおそらくこれを行うことができることを理解しています:-
- 実行中に属性
EGL_SWAP_BEHAVIOR_PRESERVED_BIT
のビットを設定し、EGL_SURFACE_TYPE
eglChooseConfig
- EGLSurface オブジェクトを呼び出して
EGL_SWAP_BEHAVIOR
属性を設定するEGL_BUFFER_PRESERVED
eglSurfaceAttrib
ただし、クロノスのドキュメントから次のことを収集します。
EGL_SWAP_BEHAVIOR_PRESERVED_BIT
EGL バージョンが 1.4 以上の場合にのみサポートされます。EGL_SWAP_BEHAVIOR
EGL バージョンが 1.2 以上の場合にのみサポートされます。
これで、Android アプリケーションで次の 2 つの方法で EGL にアクセスできることがわかりました。
- パッケージ
EGL10
内 の Khronos API クラスを使用します (まだ実装されていないようです)javax.microedition.khronos.egl
EGL11
- で Android API クラス
EGL14
を使用しますandroid.opengl package
( class の使用と同様android.opengl.GLES20
) 。
(1) の問題は、バージョンが 1.4 未満であるため、必要な機能がサポートされていないことです。(2) の問題は、EGL14 で任意のメソッドを呼び出した瞬間にアプリケーションが単純にクラッシュすることであり、それをどのように使用すればよいかわかりません (EGL14 がどのように機能するかについての単一のサンプル プログラム/チュートリアルが見つかりませんでした)。アプリで使用することになっています)。特に、EGL14 から有効な GL コンテキストを取得する方法を学びたいと思います。EGL10 の場合、javax.microedition.khronos.egl.EGLContext.getGL()
. ただし、 class には同等のメソッドがありませんandroid.opengl.EGLContext
。android.opengl
実際、 EGL14 を除くすべての EGL 関連のクラスはほとんど空のようです。
私の最善の策は、GLES20 の場合と同じ推論に従うことでした。つまり、メソッド内でのみメソッドを呼び出すことでしたGLSurfaceView.Renderer
: onDrawFrame()
、onSurfaceCreated()
、onSurfaceChanged()
。これらは有効な GL (GL10) および EGL (EGLConfig) コンテキストを引数として提供するためです。だから私は内部に次のコードを入れますonDrawFrame()
:-
すべてのメソッドが静的であるため、上記を呼び出す前に EGL14 をインスタンス化する必要はないと思います。ただし、 を呼び出すとEGL14.eglGetDisplay()
、アプリがクラッシュします。
どんな助けでも大歓迎です、ありがとう:)
c++ - EGL 上の GUI?
EGLは、「GUIウィンドウ」をグラフィカルサーバーに接続するための次の最も一般的な標準になるようです.私の質問は、おそらくC ++で、EGLの上にウィジェットと素敵なGUIを作成できるGUIフレームワークがあります. ?
さまざまな理由で GTK、QT、Wx を除外していますが、ここで求めているものにも適合しません。
opengl-es - cairo gles を使用した GTK レンダリング
GTK が使用する cairo のバックエンドを GLES (X11 ウィンドウ実装) に変更することに成功しました。すべての gdkwindow に eglWIndowSurface を使用しています。私が直面している問題は、GTK が差分レンダリングを行っているため、レンダリングされた現在のフォーカス領域のみが表示されることです。GTK で完全なウィンドウを常にレンダリングする方法はありますか?
opengl-es-2.0 - 読み取りおよび描画サーフェスなしでバインドをサポートしないコンテキストを作成する方法
OpenGl ES 2.0「surfaceless_context」の新しい拡張では、次のように指定されています。
Context が読み取りサーフェスと描画サーフェスなしでバインドされることをサポートせず、 と の両方が EGL_NO_SURFACE である場合、EGL_BAD_MATCH エラーが生成されます。
そのようなコンテキストを作成できません。コンテキストを共有しようとしましたが、うまくいきませんでした。
リンク: http://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_surfaceless_context.txt
android - eglCreateImageKHR が EGL_NO_IMAGE_KHR (Android の場合) を返すのはなぜですか?
あるスレッドでテクスチャを作成し、それを別のスレッドで使用する必要があります。共有コンテキストを使用してみましたが、テクスチャが共有されていないようです。このサンプル(Wiktorさんが投稿したコード)を使ってeglCreateImageKHR
使って みました
eglCreateImageKHR
返品中EGL_NO_IMAGE_KHR
です。
また、拡張機能を使用しているときに、コードをコンパイルするために eglext.h と gl2ext.h をインクルードする前に定義する#define EGL_EGLEXT_PROTOTYPES
必要
#define GL_GLEXT_PROTOTYPES
がありました。これは間違っていますか?これらは他のヘッダーで定義する必要がありますか?
それが役立つ場合は、テクスチャを作成するスレッドのコードを次に示します。私が間違っているのは、OpenGL から返されたテクスチャ ハンドルを に渡し、eglCreateImageKHR
それを にキャストすることだと思いますEGLClientBuffer
。(また、サンプルからコピーしただけなので、reinterpret_castが何をするのかわかりません。しかし、サンプルはこの部分についてあまり明確ではありません。)
c++ - 深度テストを有効にすると OpenGL ES 2.0 オブジェクトが消える
編集:これは正しいことが判明しました。うまくいけば、同様の問題を抱えている他の人に役立つことを願っています。
OpenGL ES 2.0 (EGL を使用) で深度テスト パイプラインを設定する際に欠けている部分はありますか?
これについて多くの質問を見つけましたが、コンテキストの初期化時に深度バッファーを正しく設定することですべて解決されました。
または、深度バッファを適切に有効にしてクリアし、コンテキストが初期化された後にそうします。
glEnable(GL_DEPTH_TEST)
I have a scene but without the depth test occlusion をコメントアウトします。
シェーダーでは、z
コンポーネントのgl_Position
視覚的な出力が期待どおりに機能します (z
値は [0, 1] の範囲にあります)。
予想どおり、すべてのオブジェクトは純粋な緑の色合いで、近くにあるほど暗く、遠くにあるほど明るくなります。悲しいことに、より近い (より暗い) オブジェクトの上に、さらに (より明るい) オブジェクトが描画されます。
私が見逃しているアイデアはありますか?(他に何もないとしても、これが他の人が抱えているいくつかの問題を要約していることを願っています)。