Доброго времени суток, что-то я малость запутался, в таком вопросе: как сделать так, чтобы при изменении размеров viewport-а, размер нарисованной картинки не менялся?
Код стандартный:
void resize(int X,int Y,int W,int H) {
Fl_Gl_Window::resize(X,Y,W,H);
glLoadIdentity();
glViewport(0,0,W,H);
glOrtho(0,W,0,H,-1,1);
redraw();
}
void draw() {
// First time? init viewport, etc.
if (!valid()) {
valid(1);
glLoadIdentity();
glViewport(0,0,w(),h());
glOrtho(0, w(),0,h(),-1,1);
}
// Clear screen
glClear(GL_COLOR_BUFFER_BIT);
// Draw white 'X'
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINE_STRIP); glVertex2f(w(), h()/2); glVertex2f(-w(),-h()); glEnd();
// хотя не так важно что рисовать, при изменении размеров viewport-а, картинка растягивается/сжимается
}
Может надо вводить какой-нибудь поправочный коэффициент, типа aspectratio(отношение сторон окна) и при отрисовке умножать на него?