Hi, I'm trying to figure out how I can keep the aspect ratio of my rendered objects constant, without distorting labels / text in my scene. In my 'on_resize()' function I call 'label.begin_update()' and 'label.end_update()', assuming that these calls will prevent the label from getting scaled. However this does not work - I'm probably doing something wrong here. Does anybody have a suggestion on how to preserve the text / label? I'm using pyglet 1.1.4.
thanks! andreas import pyglet from pyglet.gl import * class myWindow(pyglet.window.Window): def __init__(self, *args, **kwargs): pyglet.window.Window.__init__(self, *args, **kwargs) def setup(self): self.labels = [] self.labels.append(pyglet.text.Label( """dummy text""", font_size=12, x=130, y=130, anchor_x = 'left', anchor_y = 'center')) glClearColor(0, 0, 0, 1.0) glPointSize(5) def draw_square(self): glLineWidth(1) glBegin(GL_LINE_LOOP) glVertex2f(100, 100) glVertex2f(400, 100) glVertex2f(400, 400) glVertex2f(100, 400) glEnd() def on_draw(self): glEnable(GL_NORMALIZE) glPushMatrix() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # draw the square and the text label self.draw_square() for label in self.labels: label.draw() glPopMatrix() def on_resize(self, w, h): # set viewport to new view dimensions but don't scale text labels for label in self.labels: label.begin_update() glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0, W, 0, H, -1.0, 1.0) glMatrixMode(GL_MODELVIEW) for label in self.labels: label.end_update() if __name__ == "__main__": H = 600 W = 500 my_win = myWindow(width=W, height=H, resizable=True) my_win.setup() pyglet.app.run() -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To view this discussion on the web visit https://groups.google.com/d/msg/pyglet-users/-/L18wTS8I3lkJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en.
