Is there a decent OpenGL text drawing library for the iPhone SDK?

前端 未结 8 765
无人共我
无人共我 2020-11-28 20:54

I\'m trying to figure out a simple to draw some text in OpenGL. My research has shown its a fairly complex task. It involves creating (or generating at runtime) a font atl

8条回答
  •  孤城傲影
    2020-11-28 21:24

    I found a simple solution to this. Here's a quick function I wrote for it. (You will need the Texture2D class.)

    - (void) drawText:(NSString*)theString AtX:(float)X Y:(float)Y {
    // Use black
    glColor4f(0, 0, 0, 1.0);
    
    // Set up texture
    Texture2D* statusTexture = [[Texture2D alloc] initWithString:theString dimensions:CGSizeMake(150, 150) alignment:UITextAlignmentLeft fontName:@"Helvetica" fontSize:11];
    
    // Bind texture
    glBindTexture(GL_TEXTURE_2D, [statusTexture name]);
    
    // Enable modes needed for drawing
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
    
    // Draw
    [statusTexture drawInRect:CGRectMake(X,Y-1,1,1)];   
    
    // 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);    
    }
    

    I believe the input coordinates need to be in your world coordinates, but I'm not sure if that's true in general or if it just works that way for me. You might need to play with the offsets to get it right.

提交回复
热议问题