問題タブ [glsurfaceview]

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 投票する
1 に答える
1403 参照

java - Android OpenGL ES... チュートリアルでは常に正しくレンダリングされるのに、私のバージョンではランダムにレンダリングされないのはなぜですか?

OpenGL の NeHe チュートリアルの Android ポートであるinsanitydesign.comにあるチュートリアル セットに従っています。チュートリアル バージョンが常に正しくレンダリングされているように見えるのに、変更したバージョンがランダムに完全に正しくレンダリングされない理由を理解するのに多くの問題があります。プログラムをロードするとすぐに問題が明らかになる場合もありますが、表示される前に画面を回転させる必要がある場合もあります。filedropperから、画面を 12 回回転させたスクリーングラブを含む zip ファイルをダウンロードできます。ご覧のとおり、通常、三角形はレンダリングされますが、場合によっては完全に歪んで汚れて表示されます。 興味があれば、ここに私の Eclipse プロジェクト全体へのリンクがあります。

Shape.draw() メソッドに問題があると思われますが、確かなことはわかりません。

これは、関連するコードだと思います:

GLRenderer.java

Shape.java パッケージ com.smashing.test;

編集:チュートリアルが私のバージョンとは少し異なることを認識しています。私はそこから推測して実験しようとしています...違いに完全に驚いて驚いており、それらが存在する理由と、レンダリングで見つけたような不快な結果を回避する方法を知りたいです。図式。

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

java - GLSurfaceView に AlphaAnimation を設定する

GLSurfaceView のアニメーションを完全に不透明から 0 アルファ透明度にフェードするように設定する方法はありますか? 私は何もしない次のコードを持っています:

通常、SurfaceView は通常の View オブジェクトのように動作しないことを理解していますが、これは正しい方法ですか? 他に良い方法はありますか?それはまったく可能ですか?

0 投票する
4 に答える
27480 参照

java - GLSurfaceViewの画面をビットマップにキャプチャする

GLSurfaceViewある瞬間の画像をキャプチャできる必要があります。私は次のコードを持っています:

GLSurfaceViewに含まれていますが、画像をキャプチャするためにをRelativeLayout使用して直接試してみました。GLSurfaceViewこれにより、画面は透明な画像、つまり何もキャプチャされないと思います。どんな助けでもありがたいです。

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

android - Androidの既存のビューに透明なGLSurfaceviewをオーバーレイしますか?

こんにちは、GLSurfaceview を既存のビューにオーバーレイしようとしています。以下のコードは、オーバーレイ方法を示しています。機能しない唯一のことは、上部の glsurfaceview の透明度です。

次に、レンダラーで背景色を次のように設定しました

誰かが私が除外しているものについてアドバイスできますか?

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

android - カメラ プレビューと GLSurfaceView をファイルにキャプチャする

カメラのプレビューとオーバーレイされたGLSurfaceViewの両方の「写真を撮ろう」としています。camera.takePicture() と PictureCallback() を介してカメラ プレビュー要素が機能していますが、GLSurfaceView 要素を含めるか、現在の画面を個別にキャプチャして 2 つのビットマップを 1 つのファイルにマージする必要があります。以下のコードを使用して surfaceView から画像を取得しようとしましたが、これは null ビットマップになります。

これについての考えやスニペットをいただければ幸いです。よろしくお願いします。

0 投票する
0 に答える
866 参照

android - 同じレイアウトで 2 つ以上の GLSurfaceView を持つことは可能ですか?

同じアクティビティ (およびレイアウト) で 2 つ以上の GLSurfaceView を持つことは可能ですか?

私はそれを試してみましたが、そのうちの 1 つだけが 2 倍になりました...どうすれば正しくできますか?

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

android - 異なる GLSurfaceView 間で GLES20 コンテキストとテクスチャを共有していますか?

異なる GLSurfaceViews (1 つのアクティビティ内) 間で GLES20 コンテキストを共有することは可能ですか? あるいは、異なる GLSurfaceView 間で一連のテクスチャを共有するにはどうすればよいでしょうか?

iOS では、メモリを節約し、別の CAEAGLLayer がサポートする UIView で (大きな) テクスチャを再利用したい場合、それらの間で EAGLContext オブジェクトを渡すか、共通の EAGLSharegroup オブジェクトを共有する別の EAGLContext を使用できます。

Androidでこれをどのように達成するのだろうか。同等の技術はありますか?

編集1

同じ EGLContext を返す独自の EGLContextFactory を実装するという最初の提案は機能しません。これは、すべての GLSurfaceView がレンダリングを独自のプライベート gl レンダー スレッドにディスパッチし、異なるスレッド間で同じ EGLContext を共有できないためです。

私の最初の質問を言い換えると: 1 つの画面 (1 つのアクティビティ) に複数の GLSurfaceView があり、すべてのサーフェスの個々の EGLContext で共通だが大きなテクスチャのセットにアクセスする必要がありますが、テクスチャを複数回ロードするとデバイスのメモリを超えます。では、GLSurfaceView 間でテクスチャをどのように共有しますか?

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

android - SurfaceView: 画面全体ではなく画面の一部のみを描画する方法

アプリケーションに静的な背景画像を配置したいのですが、前景にいくつかの小さなアニメーションを配置したいと考えています。現在、変更が小さく、画面のごく一部しか占めていない場合でも、基本的に毎回画面全体を再描画する必要があります。

アプリケーションのフレームレートを高速化するために、画面の一部のみを更新する方法はありますか? SurfaceView でそれを行うことはできますか、それとも代わりに GLSurfaceView を使用する必要がありますか?

説明やチュートリアル/ドキュメントへのリンクをいただければ幸いです。

ありがとう、

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

android - How to properly use setZOrderMediaOverlay on Android?

Like many others, I am trying to draw 3D objects (using GLSurfaceView) on camera preview (using SurfaceView), along with some buttons placed on top. I actually got a prototype working, but I could not get the onResume working correctly. After a resume, GLSurfaceView stays behind and is not visible anymore. I know that it is working, because I can see the drawing fine if I remove the SurfaceView from the layout.

The target is Nexus One, running stock 2.3.3 ROM.

Here's the layout xml:

All of this is wrapped in a <merge> block, but for some reason, I could not include it in the above <code> listing. Preview is the class that extends SurfaceView and implements the camera preview logic.

This works fine when the activity launches. After I launch another activity (for example, by pressing one of the buttons) and finish that activity, the main activity resumes but the 3D objects are not visible anymore.

I found this discussion where it is mentioned that setZOrderMediaOverlay() will help fix this z-ordering issue. Also, the Android document for setZOrderMediaOverlay() says this function should be called "before the surface view's containing window is attached to the window manager". I do not know how I should interpret that statement, so I put debug statements in the code to see the sequence of events. Here's how the GLSurfaceView code looks like:

Here's the sequence of events when I start the application:

So I assumed that setZOrderMediaOverlay() needs to be called in either onResume() or in the constructor. However, I tried various combinations of setZOrderMediaOverlay() with true or false, in the GLSurfaceView or the SurfaceView classes, but none of it helped with the problem.

I am relatively new when it comes to Android programming. I have come so far but at this point I need some help. If someone who used setZOrderMediaOverlay() successfully in this scenario and got it working with onResume() let me know how this needs to be done.

Thanks a lot in advance!