問題タブ [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.
opengl-es - EGL/OpenGL ES/コンテキストの切り替えが遅い
複数の「フレーム」で構成される OpenGL ES 2.0 アプリケーション (Windows で angleproject を使用して開発) を開発しています。
各フレームは、周囲のフレームに干渉しない独立したアプリケーションです。フレームは、そのフレーム内で実行されるコードによって、OpenGL ES 2.0 を使用して描画されます。
私の最初の試みは、各フレームにフレーム バッファを割り当てることでした。しかし、問題がありました。あるフレームの描画中に OpenGL の内部状態が変更され、次のフレームがすべての既知の OpenGL 状態を包括的にリセットしない場合、副作用が発生する可能性があります。これは、各フレームを分離し、互いに影響を与えないようにするという私の要件を無効にします。
私の次の試みは、フレームごとにコンテキストを使用することでした。フレームごとに独自のコンテキストを作成しました。私は共有リソースを使用しているので、各フレームに eglMakeCurrent を適用し、それぞれを独自のフレーム バッファー/テクスチャにレンダリングしてから、eglMakeCurrent をグローバルに戻し、各テクスチャを最終画面に構成できます。
ただし、これはインスタンスを分離するのに優れた仕事をします.. eglMakeCurrent は非常に遅いです。わずか 4 つでも、画面のレンダリングに 1 秒以上かかることがあります。
どのようなアプローチを取ることができますか? フレームごとに OpenGL の状態を何らかの方法で保存することで、コンテキストの切り替えを高速化するか、コンテキストの切り替えを回避する方法はありますか?
android - Android のフレームバッファ サーフェスにビットマップ テクスチャが表示されない
新しい EffectFactory/Effect を使用して、画面外の画像 (つまり、フレームバッファー) にエフェクトを追加しようとしています。SDK で提供されているHelloEffects.javaの例を見て、試してみたところ、うまくいきました。明らかにGLSurfaceViewを使用していることを除いて、それは私が望んでいるものではありません。
したがって、tests/effect/src/android/effect/cts/GLEnv.javaを使用して EGL をセットアップし、HelloEffects の例から TextureRenderer.java と GLToolbox も取得しました。それらをすべてマッシュアップすると、以下のコードが得られました。
(ちなみに、EGL をセットアップするために tests/media/src/android/media/cts/OutputSurface.java も試しましたが、まったく同じ結果が得られました。)
実行すると、返される画像は一様に青です。これは、青色で行った glClear に対応しています。これは、ピクセルがフレームバッファにレンダリングされていること、glReadPixels がそれらのピクセルを見ており、ビットマップ出力が機能していることを少なくともある程度証明しています。
しかし、テクスチャが表示されないのはなぜですか? 元のテクスチャも効果を適用したテクスチャも表示されません。GL エラーも検出されません。
コードを Eclipse にコピー/貼り付けして実行できる単一のファイルの実例に切り詰めました。明らかに、必要に応じて入力および出力画像パスを変更してください。
Nexus 10 / Android 4.3 およびエミュレーターでテスト済み。同じ結果です。
virtual-machine - QtQuick アプリケーションが VMWare (仮想マシン) で実行されない
ビルド システム:
- Qt Creator 2.7.2 Qt 5.1.0 (32 ビット) ベース 2013 年 7 月 2 日ビルド
- Qt 5.1.0 MSVC2010 32 ビット (アングル)
- Windows 7 用 Microsoft Windows SDK (7.1.7600.0.30514)
環境:
- Windows 7 (VMware)
問題: 新しい Qt Quick 2 アプリケーション (ビルトイン エレメント) プロジェクトが、受け取ったとおりに実行されません:
これは、仮想マシンで実行されているためだと思います。
Qt の ANGLE バージョンと OpenGL バージョンの両方を試しましたが、どちらも失敗します。VMWare インフラストラクチャに互換性のあるビデオ ドライバがあるとは思えないため、OpenGL は失敗すると予想していました。
他の誰かがこれを経験し、それを回避することができましたか?
ありがとう、マーカス
android - Android の Native Activity で EGL 表示が無効
私が取り組んでいる次のプロジェクトがあります。シンプルな 2D TriandleFan ボックスを作成しようとしています。
ただし、プロジェクトを実行すると、次の行が失敗します...
なぜ失敗したのかわかりません。他の誰かがそれを見ることができますか?
android - 例外の取得: FATAL EXCEPTION: GLThread configSpec に一致する構成がありません
マルチサンプリングに以下のコードを使用して、滑らかなエッジを作成しています。以下のコードは一部のモバイルで動作しており、他のモバイルでは例外が発生していますNo configs match configSpec
。
この問題を解決するために私を助けてください。
前もって感謝します。
android - MediaCodec ビデオデコーダーで使用するために Android Surface から直接 EGL イメージにアクセスする方法は?
私は現在、ビデオフレームをキャッシュする必要があるAndroidアプリを作成しているため、ほとんどまたはまったく遅延なく簡単に行き来できます。
MediaCodec
現在、オブジェクトの Configure 呼び出しに Surface を提供releaseOutputBuffer
し、render フラグを に設定して呼び出して、Android にビデオ フレームをデコードさせていますtrue
。
デコードされたサーフェス データにアクセスするために見つけた唯一の方法 (形式がデバイスに依存しているように見える、返されたバイトバッファーをデコードする以外に) は、サーフェスにリンクされた を呼び出し、これをターゲットにアタッチし、updateTeximage
作成したターゲット テクスチャにレンダリングすることです。それをキャッシュするために自分自身。SurfaceTexture
GL_TEXTURE_EXTERNAL_OES
GL_TEXTURE2D
このキャッシュ プロセスを最適化し、別のスレッドでフレームをデコードできるようにしたいと考えています。現在の方法を使用すると、これは、ビデオ デコーダー用に別の EGL コンテキストを作成し、コンテキストを共有する必要があることを意味します...
私の質問は:を呼び出さずに、Surface に関連付けられた EGL イメージまたはネイティブ バッファ データにアクセスすることは可能 updateTexImage
ですか?
そうすれば、egl イメージをキャッシュすることができます (これは、 に従って EGL コンテキストを必要としませんEGL_ANDROID_image_native_buffer
)。これは、現在キャッシュしている未加工の RGB テクスチャよりもはるかにストレージ効率の高い YUV 形式でもキャッシュされます。