Jump to content

  • Log In with Google      Sign In   
  • Create Account


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 Astado89   Members   -  Reputation: 135

Like
0Likes
Like

Posted 02 October 2013 - 12:31 PM

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.

 

 

 

Attached Thumbnails

  • Screen Shot 2013-10-02 at 8.15.25 PM.png


Sponsor:

#2 C0lumbo   Crossbones+   -  Reputation: 2118

Like
0Likes
Like

Posted 02 October 2013 - 12:42 PM

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



#3 Astado89   Members   -  Reputation: 135

Like
0Likes
Like

Posted 03 October 2013 - 12:32 AM

Hi COlumbo,

 

great thanks thats exactly what I was looking for :)

 

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






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS