iPhone上的OpenGL:ES-Texture2D的大小并显示问题
||
我在Texture2D上遇到问题,我想了解如何更好地使用它。
我从这里获取了Crashlander Texture2D类,并在XCode 4中获取了一个默认的OpenGL项目,迫使它加载OpenGL ES1.1。
首先,一个概念性的问题。 Texture2D init方法的大小显然是OpenGL的大小,但是fontSize参数与OpenGL世界有什么关系?
第二,调试。我从下面的代码中得到的结果是文本应位于的黑色(或我在glColor中设置的任何颜色)正方形。
这是我在代码中所做的更改:
- (void)awakeFromNib
{
EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
if (!aContext) {
aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
}
self.labelAtTheTop = [[[Texture2D alloc] initWithString:@\"Some Text\" dimensions:CGSizeMake(1, 1) alignment:UITextAlignmentLeft fontName:@\"Helvetica\" fontSize:14.0f] autorelease];
if (!aContext)
NSLog(@\"Failed to create ES context\");
else if (![EAGLContext setCurrentContext:aContext])
NSLog(@\"Failed to set ES context current\");
self.context = aContext;
[aContext release];
[(EAGLView *)self.view setContext:context];
[(EAGLView *)self.view setFramebuffer];
animating = FALSE;
animationFrameInterval = 1;
self.displayLink = nil;
}
- (void)drawFrame
{
[(EAGLView *)self.view setFramebuffer];
// Replace the implementation of this method to do your own custom drawing.
glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glLoadIdentity();
[self.labelAtTheTop drawAtPoint:CGPointMake(0, 0)];
glPopMatrix();
glDisable(GL_COLOR_MATERIAL);
// Disable modes so they don\'t interfere with other parts of the program
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
[(EAGLView *)self.view presentFramebuffer];
}
没有找到相关结果
已邀请:
1 个回复
妊辽剁茧
加
实际上代表黑色,也尝试对其进行注释。我认为fontSize是屏幕点的字体大小。 [编辑] 如果您想学习有关OpenGLES的知识,这里是一个很好的入门教程。 http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html