現在iPhoneアプリを作っていて、OpenGLESで文字列描画をしたいと思っています。
googleで検索すると、以下のようなトピックを見つけました。
http://dixq.net/forum/viewtopic.php?f=3&t=11112
これを参考に関数を作っていったのですが、
やはり白いテクスチャが表示されるだけでうまくいきません。
どうにかして文字列を描画できるようにしたいです。
現在のコードはこうなっています。
GLuint LoadString(NSString* String, float Width, float FontSize){
GLubyte *imageData = (GLubyte*)malloc(Width*Width*4);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef bitmapContext = CGBitmapContextCreate(imageData, Width, Width, 8, Width*4, colorSpace, kCGImageAlphaPremultipliedLast); //文字列用のコンテキスト
//コンテキストの生成
CGContextSetRGBFillColor(bitmapContext, 0.0, 0.0, 0.0, 1.0);
CGContextFillRect(bitmapContext, CGRectMake(0, 0, Width, Width));
UIGraphicsPushContext(bitmapContext);
//文字列の描画
UIFont *tFont = [UIFont systemFontOfSize:FontSize];
[[UIColor whiteColor] set];
[String drawAtPoint:CGPointMake(0, 0) withFont:tFont];
UIGraphicsPopContext();
//イメージを取り出す
CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
CGContextRelease(bitmapContext);
//テクスチャの生成
GLuint Texture;
glGenTextures(1, &Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, CGImageGetWidth(image), CGImageGetHeight(image), 0, GL_RGBA, GL_UNSIGNED_BYTE, image);
CGImageRelease(image);
return Texture;
}