Drawing text in interface that gets clipped at the end of the interfacewindow

Started by
1 comment, last by Astado89 10 years, 6 months ago

Hi everyone,

i am currently facing some issues drawing a text in my interface.

The drawing itself is working so far with the following code:


NSRect backingBounds = [self convertRectToBacking:[self bounds]];
    GLsizei backingPixelWidth  = (GLsizei)(backingBounds.size.width),
    backingPixelHeight = (GLsizei)(backingBounds.size.height);
    glViewport(0, 0, backingPixelWidth, backingPixelHeight); //set viewport to complete screen
    glClearColor(1, 1, 1, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0, 0, 1);
    glBegin(GL_QUADS);  //draw simple quad half the size of the screen
    glVertex2d(-0.5, 0.5);
    glVertex2d(0.5, 0.5);
    glVertex2d(0.5, -0.5);
    glVertex2d(-0.5, -0.5);
    glEnd();
    
    glPushMatrix();
    glLoadIdentity();
    glViewport(0, 0, 100, 100); //set viewport to small part of the screen
    glColor3f(0, 1, 0);
    glBegin(GL_QUADS);  //draw next rect
    glVertex2d(-1, 1);  //just for indication of the next viewport
    glVertex2d(1, 1);   // to see where the text is drawn
    glVertex2d(1, -1);
    glVertex2d(-1, -1);
    glEnd();
    
    glColor3f(1, 0, 0);
    glOrtho(0, 100, 0, 100, -1.0, 1.0); //set the ortho for the viewport
    glRasterPos2d(10, 10);
    const char *_string = "das ist ein Test";
    void* _fonttype = GLUT_BITMAP_TIMES_ROMAN_24;
    
    if (*_string && strlen(_string)) {
        while (*_string) {
            glutBitmapCharacter(_fonttype, *_string); //draw character
            _string++;
        }
    }
    glPopMatrix();

but the text is drawn when it reaches the viewports end.

I want the text to be clipped when it reaches the end of the viewport or what ever possibility.

The main reason is I want to make a tableview that shows content of my game.

Some of the content is too big (like texts) and each column will be resized to fit.

But then the tableview might be too big for my interfacewindow.

So I want to implement scrolling.

So each column as it enters the window when scrolling should show its text but the text should cut of at the end

of the window and when scrolled out of the window.

For example the text is "Hallo World" and it is scrolled in the H is to be shown and the rest clipped.

When is is scrolled out of the screen the H disappears.

I hope that I described it so you can understand my issue smile.png

Does anyone have any ideas of how i would do that?

Thanks a lot for reading my post.

Advertisement

glScissor is probably the easiest way to achieve this: http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml

Hi COlumbo,

great thanks thats exactly what I was looking for :)

Maybe I'll post my Interface solution when I finished it.

This topic is closed to new replies.

Advertisement