3D技術研究所Wiki > TGAReader > TGA画像をAndroid OpenGLアプリケーションで利用する

TGA画像をAndroid OpenGLアプリケーションで利用する方法についてまとめています。

目次


TGA画像をAndroid OpenGLアプリケーションで利用する

TGAReaderを利用してAndroid OpenGLテクスチャを作成します。

TGAGLViewer_Android.png

TGA画像をAndroid OpenGLアプリケーションで利用するソースコード

TGA画像はassets/imagesにあるものとします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    int texture = createTGATexture(gl, "images/rgb_rle_LL.tga");
}

public int createTGATexture(GL10 gl, String path) {
    int texture = 0;
    try {
        
        InputStream is = getContext().getAssets().open(path);
        byte [] buffer = new byte[is.available()];
        is.read(buffer);
        is.close();
        
        int [] pixels = TGAReader.read(buffer, TGAReader.ABGR);
        int width = TGAReader.getWidth(buffer);
        int height = TGAReader.getHeight(buffer);
        
        int [] textures = new int[1];
        gl.glGenTextures(1, textures, 0);
        
        gl.glEnable(GL_TEXTURE_2D);
        gl.glBindTexture(GL_TEXTURE_2D, textures[0]);
        gl.glPixelStorei(GL_UNPACK_ALIGNMENT, 4);

        IntBuffer texBuffer = IntBuffer.wrap(pixels);
        gl.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texBuffer);
        
        gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
        gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
        gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        
        texture = textures[0];
        
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    
    return texture;
}
 


関連ページ


スポンサードリンク


添付ファイル: fileTGAGLViewer_Android.png 290件 [詳細]
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS