AndroidNDK-r5 (2)

取り合えず、Android NDK r5に入っているサンプルを
OpenGL ES1.1用で動かしてみようという試み。
何か間違っているところはおおよそあるだろうけど、いつかきっと何とかなる……!


参考にするのは、「android-ndk-r5\samples」にある「hello-gl2」


利用するのをOpenGL ES2.0 → GL ES 1.1 に変えるということで、
min SDK version は 4 (SDK1.6)で大丈夫になる。
(GL ES 2.0 の場合は SDK2.0以上)


まずは、Manifestファイルのuses-featureを以下のように編集する。

<uses-feature android:glEsVersion="0x00010001"/>

上位 16 ビットはメジャー番号で、下位 16 ビットはマイナー番号を表します。
次に、GLSurfaceViewをextendsしたクラスから以下の行をコメントアウトする

// setEGLContextFactory(new ContextFactory());

この関数はOpenGL ES2.0をレンダリングするためのcontext factoryを
設定するものなので、ES1.1の場合は不要。 というか、あるとエラーとなる。
また、当然「ContextFactory」のクラスもコメントアウト


このあたりはOpenGL ES1.x系と2.x系の大きな違いになるのでググって下さい。


後は取り合えず動かすだけならばjniフォルダ以下にある
「gl_code.cpp」のヘッダファイルを変更して、ndk-buildを実行した場合に
エラーが発生した行を全てコメントアウトすれば動きます。とか適当なことを。

#include <GLES/gl2.h>
#include <GLES/gl2ext.h>
→
#include <GLES/gl.h>
#include <GLES/glext.h>

おっと、ndk-buildする前にAndroid.mkで以下の行を変更する必要がありましたね。

LOCAL_LDLIBS    := -llog -lGLESv2
→
LOCAL_LDLIBS     := -llog -lGLESv1_CM

そして取り合えず、要らないものをコメントアウトしたら
背景が黒→白になるグラデーションだけ残る感じになりますかね。
今日はここから、ポリゴンの描画とテクスチャマッピングの組込を覚えねば。