我目前正在开发OPENGL ES 2.0项目。我正在制作一个条形图应用程序。我在制作图表方面取得了成功。我试图在文字上插入文字。我发现没有直接的解决方案来实现这一点。OPENGL ES 2.0在屏幕上渲染文本
我遇到了一个OPENGL ES 1.1代码,其中包含以下几行代码。
文件:在GLViewController.m(从drawView函数功能)
Texture2D *textTex = [[Texture2D alloc] initWithString:@"Text"
dimensions:CGSizeMake(100., 40.0)
alignment:UITextAlignmentCenter
font:[UIFont boldSystemFontOfSize:10.0]];
[textTex drawAtPoint:CGPointMake(160.0, 100.0) depth:-1];
在Texture2D.m文件,
- (void) drawAtPoint:(CGPoint)point depth:(CGFloat)depth
{
GLfloat coordinates[] = {
0, _maxT,
_maxS, _maxT,
0, 0,
_maxS, 0
};
GLfloat width = (GLfloat)_width * _maxS,
height = (GLfloat)_height * _maxT;
GLfloat vertices[] = {
-width/2 + point.x, -height/2 + point.y, depth,
width/2 + point.x, -height/2 + point.y, depth,
-width/2 + point.x, height/2 + point.y, depth,
width/2 + point.x, height/2 + point.y, depth
};
glBindTexture(GL_TEXTURE_2D, texture.name);
glVertexPointer(3, GL_FLOAT, 0, vertices); //1
glTexCoordPointer(2, GL_FLOAT, 0, coordinates); //2
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
}
当我试图这个代码转换成OPENGL ES 2.0代码,我无法找到标记为1和2的行的合适转换。有人可以帮助我将此代码转换为OPENGL ES 2.0代码吗?
或者,如果任何人知道在屏幕上写文本的更简单的方法,请让我知道。
你有没有设法做到这一点?如果你能分享代码,这将是非常好的 – Xys 2017-07-28 15:16:59