PNGでテクスチャ
2013-11-05


今回はタイトル通り、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 &ltGLES2/gl2.h>
#include &ltGLES2/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

続きを読む

[Android プログラミング]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット