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
Does anyone have any ideas of how i would do that?
Thanks a lot for reading my post.