今回はタイトル通り、PNG画像の読み込みとテクスチャの設定・描画を行います。
PNGの読み込み、つまりはPNGデータを読み込んでテクスチャデータに展開するのですが、OpenGLやAndroid NDKにはそのような機能はありません。そこで、libpngというPNG読み込み(と書き込み)のライブラリを使用します。
ありがたいことにlibpngにはAndroid用がありますので、そちらを使わせていただきます。
libpng for Android
jni/sysの下に丸々コピーして、jni/Android.mkから jni/sys/libpng/jni/Android.mkをインクルードするようにします。これでlibpngがプロジェクトに組み込まれます。
それではテクスチャ管理クラス sys::Textureです。
PNGの読み込み部分(load_png)と、テクスチャの設定部分(make)があります。
Texture.h
#ifndef ___TEXTURE_H___
#define ___TEXTURE_H___
#include "common.h"
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
namespace sys
{
/****************
テクスチャ
****************/
class Texture
{
public :
// ピクセルフォーマット
enum
{
FORMAT_RGBA,
FORMAT_RGB,
};
GLuint texture; // テクスチャオブジェクト
short format; // テクスチャフォーマット
short width, height; // サイズ
Texture(void) // コンストラクタ
{
texture = 0;
}
~Texture() // デストラクタ
{
clear();
}
void make(const u8*); // 作成
void clear(void); // 削除
void load_png(const u8*); // PNG読み込み
};
}
#endif
/********************* End of File ********************************/
Texture.cpp
セコメントをする