OpenGLで文字を描く

実機で見たら表示されない時がありました。
原因は、テクスチャー読み込み時に、glTexParameterfの指定を忘れていたからでした。
gl.glBindTexture(GL10.GL_TEXTURE_2D, imageFontImageId);
bitmap=OpenGLUtils.loadBitmap(mContext, R.drawable.font_image);
//指定すること、でないと実機で表示されない

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);



GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();


iPhone的には、nakamura001さんのと同じです
http://d.hatena.ne.jp/nakamura001/20081228/1230474743
フォントは、M+とIPAフォントですので再利用にも問題ありません。

画像は以下ですが、文字色白なので見えないと思いますが
http://xucker.jpn.org/img3/font_image.png

package com.akjava.lib.android.opengl;

import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
import javax.microedition.khronos.opengles.GL11Ext;

import android.util.Log;

public class ImageFont {
private int textureId;
private int baseSize=16;
private float fontMargin=0.5f;//文字間

public ImageFont(int textureId){
this.textureId=textureId;
}
public void drawString(GL10 gl,String text,int startX,int startY,int fontSize,float marginPersent){
int dy=startY;
int dx=startX;
for(int i=0;i getImageFontRec(char ch){
int dx=((int)ch)%16;
int dy=7-((int)ch)/16;//image size
Log.i("my","dx:"+dx+",dy="+dy);
return new int{16*dx,16*dy,baseSize,baseSize};
}

}