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