SurfaceTextureレンダラ ( 連続画像を画面に描画 )



SurfaceTexture に出力した画像を、画面に描画する方法を解説します。

前項「SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )」で作成したSurfaceTextureレンダラは、画像を1度だけ画面に描画するレンダラであり、画面に描画される画像が変わることはありませんでした。
本項では、SurfaceTextureレンダラを、連続画像を画面に描画するものに変更します。

解説

前項に対する処理の変更は以下です。

実装

アプリの仕様

プロジェクトを開く

SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )」で作成したプロジェクトを開きます。

クラスメンバー変数の追加

「SurfaceTextureRenderer」クラスのメンバーに、乱数オブジェクトと、Handlerオブジェクト、Runnableオブジェクト(とrun関数の定義)を追加します。



「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。

「Surfaceでの描画」関数の変更

「SurfaceTextureRenderer」クラスの「Surfaceでの描画」を、乱数を用いた描画に変更します。
連続で「Surfaceでの描画」が行われるように、「Surfaceでの描画」関数の末尾に、0.1秒(100ミリ秒)後に、再度「Surfaceでの描画」を呼び出す処理を追加します。



リビルドし、エラー、警告がないことを確認します。

実行

Android端末にて、動作確認。



アプリを起動すると、メインアクティビティが表示されます。
背景色は、灰色。
0.1秒(100ミリ秒)ごとに、矩形と円が、ランダムな色、位置、大きさで表示されます。

ダウンロード

サンプルコード

関連ページ

SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )

SurfaceTextureレンダラ ( 連続画像を画面に描画 ) - 本ページ

SurfaceTextureレンダラ ( 頂点バッファオブジェクトの利用 )