Draw text in iPhone openGL ES using just objective-c

懵懂的女人 提交于 2019-12-21 05:44:07

问题


A need to draw some text in openGL and then make rotations and translations over it. Need to use just objective-c. Any help?


回答1:


Use Photoshop or something to create a texture file like below.

|ABCDEFGH|
|IJKLMNOP|
|QRSTU...|

sample.png

Calculate UV position of each character.

float eachCharHeight = 0.125f;
float eachCharWidth = 0.125f;
char charToDraw = 'a';
int indexOfChar = charToDraw - 65; // 'a' = 65
float uValueForCharA = (float)(indexOfChar / 8) * eachCharHeight;
float vValueForCharA = (float)(indexOfChar % 8) * eachCharWidth;

Set texcoords and draw.

glPushMatrix();
glRotatef(...);  // or translate

glEnable(GL_TEXTURE_2D);
glBindTexture(texture);

float vertices[8] = {0.0f, 0.0f, 1.0f, 0.0f, ...};
float texcoords[8] = {uValueForCharA, vValueForCharA, 
                      uValueForCharA + eachCharWidth, ...};

...

glPopMatrix();



回答2:


AFAIK there are basically three ways to do it either you can render the text as a texture (see) or you can use the 2-d graphics library (Quartz) mixed with your opengl or finally you can use e.g. UILabel to display the text on top of your opengl output.



来源:https://stackoverflow.com/questions/3075700/draw-text-in-iphone-opengl-es-using-just-objective-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!