SurfaceView と GLSurfaceView の基本的な違いを誰か教えてもらえますか? いつ SurfaceView を使用し、いつ GLSurfaceView を使用する必要がありますか?
スタック オーバーフローに関する回答済みの質問をいくつか読みましたが、それらは私の質問を満足させるものではありませんでした。
どんな助けでも大歓迎です。
SurfaceView と GLSurfaceView の基本的な違いを誰か教えてもらえますか? いつ SurfaceView を使用し、いつ GLSurfaceView を使用する必要がありますか?
スタック オーバーフローに関する回答済みの質問をいくつか読みましたが、それらは私の質問を満足させるものではありませんでした。
どんな助けでも大歓迎です。
AGLSurfaceView
は、SurfaceView
OpenGL でレンダリングできる です。それらの中から選択するのは簡単です:
GLSurfaceView
.SurfaceView
ます。OpenGL は低レベルです。まだ慣れていない場合は、学ぶのが大変です。2D 描画のみが必要な場合SurfaceView
は、高レベルで適度に高性能なCanvasを使用します。操作はとても簡単です。
を使用する強い理由がない限りGLSurfaceView
、通常の を使用する必要がありますSurfaceView
。GL が必要であることをまだ知らない場合は、おそらく必要ないことをお勧めします。
View は 2D アプリケーション用であるため、GLSurfaceView は 3D アプリケーションの主要な構成要素です。3D ゲームだけでなく、カメラなどのマルチメディア アプリケーションで特殊なプレビュー効果を作成するために広く使用されています。
GLSurfaceView は SurfaceView を拡張し、さらにクライアントによって設定されたレンダリング スレッドとレンダリング オブジェクトを所有します。レンダリング スレッドは、継続的またはオンデマンドで実行され続け、レンダリング オブジェクトに委譲して、OpenGL API を使用してフレームを描画します。SurfaceView と GLSurfaceView の両方について、レンダリングはメイン スレッドとは別のスレッドで実行されます。違いは、SurfaceView ではレンダリング スレッドがクライアントによって作成されるのに対し、GLSurfaceView ではシステムによって作成されることです。さらに、GLSurfaceView はメイン スレッドとレンダリング スレッド間の同期を内部的に処理します。
詳細については、これとこれをチェックしてください
サーフェスビュー
AFAIK Canvas は実装が簡単で、2D 描画に効果的ですが、3D 描画はサポートされていません
GLSurfaceView
3D ゲームをデザインしたい場合は、GLSurfaceView と OGLES を使用する必要があります。
私の経験では、2D 処理だけを行いたい場合は Canvas を選択します。これは、実装が簡単で、GLSurfaceView と比較して効果的であるためです。