|
Registered Member
Join Date: Aug 2008
Location: London/Peterborough
Posts: 562
|
OpenGL ES text rendering as a block
Hi, I am trying just to draw some text on the screen with opengl es, I always however end up with the text as a huge green box...any ideas?
code:
- (void)drawView {
[EAGLContext setCurrentContext:context];
_textures[0] = [[Texture2D alloc] initWithString:@"hello" dimensions:CGSizeMake(1, 1) alignment:UITextAlignmentLeft fontName:@"Arial" fontSize:14];
//Set up OpenGL projection matrix
glMatrixMode(GL_PROJECTION);
glMatrixMode(GL_MODELVIEW);
//Initialize OpenGL states
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glClearDepthf(1.0f);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
glLoadIdentity();
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
GLfloat line[] = {
-0.5f, -0.5f, //point A
0.5f, -0.5f, //point B
};
GLfloat xxx[] = {
-0.0f, -0.5f, //point A
-0.5f, -0.2f, //point B
};
GLfloat spinline[] = {
-0.5f, 0.0f, //point A
0.5f, 0.0f, //point B
};
glColor4f(0.0f,1.0f,0.0f,1.0f);//Change the object color to green
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
[_textures[0] drawAtPoint:CGPointMake(0, 0)];
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glColor4f(1.0f,0.0f,0.0f,1.0f);
glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
glVertexPointer(2, GL_FLOAT, 0, line);
glDrawArrays(GL_LINES, 0, 2);
glVertexPointer(2, GL_FLOAT, 0, xxx);
glDrawArrays(GL_LINES, 0, 2);
glVertexPointer(2, GL_FLOAT, 0, spinline);
glDrawArrays(GL_LINES, 0, 2);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}
|