eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

OpenGL

システムレイヤーにOpenGL対応Viewを追加する

Manifest設定 システムレイヤーへの描画は専用のPermissionがある <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> WindowManagerでViewを登録 レンダリング用のViewとタップ用のViewを分けると設計が楽になる場合がある SurfaceViewは軽量だが、View移動ができない OpenGL側でViewportを調整してあげると</uses-permission>…

複数スレッドでGLの処理が可能なGLSurfaceView作りました

複数スレッドでGLの処理が可能なGLSurfaceView作りました Githubで配布しています https://github.com/eaglesakura/multicontextglsurfaceview 何が出来るのか GLSurfaceViewを継承したクラスです。動作には互換性があり、GLSurfaceViewをMultiContextGLSurf…

Mac OSでPerfHUD ESを利用してNexus7のOpenGL ES負荷を測定する

Mac OSでPerfHUD ESを利用してNexus7のOpenGL ES負荷を測定する いろいろあってヨドバシポイントを2万円分手に入れたので、検証機としてNexus7を購入しました。Nexus7はTegraを搭載していて、便利なツールがMacでも使えるので、そのメモです。 標準ツールで…

Galaxy NexusでETC1テクスチャを利用する場合の注意

ETC1とGalaxy Nexus AndroidのOpenGL ES実装はETC1をサポートするようになっています。 ETC1テクスチャは4x4のピクセルブロックを基本とした圧縮を行うため、利用するには次のような制限があります。 縦横のピクセル数が4の倍数であること そのため、Android…

SurfaceTextureでMediaPlayerやカメラ映像をOpenGLテクスチャとして使う場合の注意点

SurfaceTextureによるテクスチャへのマルチメディアレンダリング Android 3.xからSurfaceTextureクラスが導入されて、OpenGLとカメラ・ビデオ等のマルチメディア連携が楽になりました。 具体的には、テクスチャとしてビデオやカメラの映像を取り込めるように…

GLTextureViewを公開しました

Android 4.0(API Level 14)からTextureViewというViewが登場し、OpenGL ESの応用範囲が格段に広くなりましたが、GLSurfaceViewに相当する補助クラスが未だに登場していません。 Google的には必要ないという考えかもしれませんが、SurfaceViewよりもTexture…