Archive for the ‘開発者ブログ’ Category

Android + OpenGL ES 1.0 で必ず設定する項目

Tuesday, July 6th, 2010

Android開発で、ちょっとキャッチーでレスポンスもよいUIを作ろうと思うと、OpenGL ESの利用は最重要検討事項となります。

OpenGLは、ステートマシン型のアーキテクチャーになっていますが、多くのステートには「デフォルト値」がないようで、設定必須の項目がいくつかあります。
私も新しいプログラムを書くたびにうまく描画されなくてしばし悩みます。

ということで、最低限必要と思われる項目をメモっておきます。
(GL10対応です)

ビューポートの設定

  • glViewport() : スクリーンのうち、描画に使われる範囲を、ピクセルで指定する

射影行列の設定

  • GLU.gluPerspective(), GLU.gluOrtho2D()など
  • 必要に応じて glMatrixMode(GL10.GL_PROJECTION), glLoadIdentity()  を先に呼び出す

頂点配列/インデックス配列利用の設定

  • glEnableClientState(GL10.GL_VERTEX_ARRAY) : OpenGL ESでは頂点配列が必須なので、この設定は必須

描画

  • glClearColor() : カラーバッファ消去時に塗りつぶしに使う色をセットする
  • glClear() : カラーバッファ or/and デプスバッファを消去する
  • glVertexArray() : 頂点配列をセットする
  • glDrawArrays() : セット済みの頂点配列で、線分/三角形を描画する
  • glDrawElements() : セット済みの頂点配列と、インデックス配列を使って、線分/三角形を描画する

iPhoneアプリをInterface Builderを使わずに開発する

Saturday, March 6th, 2010

iPhoneアプリケーションを開発する際,おそらく一番の難関の一つがInterface Builder(IB)です.

これは,Viewのレイアウトをするのには非常に便利なツールです.しかし,IBを用いると,MVCモデルでいう,VやCがブラックボックス化してしまう可能性があります.よって,より難しい構成のアプリケーションを作る場合は,このブラックボックス化している部分を理解していないことが足かせとなることがあります.

例えば,動的に,あるいは大量にUILabelを作る場合,UILabelを生成する部分はfor文で書きたい…といった場合は,プログラマブルに書いた方がずっと楽に書けることが多くあります.公開中のアプリケーションであるcalologでは,食品と,そのカロリーを書いたUILabelが大量に並んでいます.これは,データはXMLで持っておき,それをfor文で呼び出しつつ,UILabelをXMLに応じて動的に生成しています.

だいたいの入門書はIBを使ったものですが,この本に関してはIBをつかわないプログラミング手法が,多数の例をもって紹介されています.掲載されているプログラムも,ところどころ省略されているものではなく,すべてが掲載されているので非常に読みやすい.おすすめです.

ただ,UIViewとUIViewControllerの使い分け,がよくわからない.MVCモデルでいう,VがUIView,CがUIViewControllerだという認識だけど,UIViewControllerに描画部分も書けてしまう.無理に分けなくてもいいんでしょうが…

Android用ソフトウェア開発中

Monday, October 19th, 2009

Android用アプリも開発中です。いつになるかな。

- munepi