/* examples/glarea/resize.c */ #include He_node *princ, *glarea; void princ_resize (He_node *hn, int width, int height) { HeExpand(glarea, NULL, HE_BOTTOM_RIGHT); } void glarea_init_proc (He_node *hn) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,100, 0,100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void glarea_repaint_proc (He_node *hn) { glClearColor(0,0,0,1); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1,0,0); glBegin(GL_TRIANGLES); glVertex2f(10,10); glVertex2f(10,90); glVertex2f(90,90); glEnd(); glColor3f(0,0.5,0.75); glBegin(GL_TRIANGLES); glVertex2f(20,10); glVertex2f(50,40); glVertex2f(90,20); glEnd(); } int main (int argc, char *argv[]) { int attr_list[] = { GLX_RGBA, None }; HeInit (&argc, &argv); princ = HeCreateFrame(); HeSetFrameLabel (princ, "Resize et proportions"); HeSetFrameResizeProc (princ, princ_resize); glarea = HeCreateGLArea (princ, attr_list, NULL); HeSetWidth (glarea, 500); HeSetHeight (glarea, 400); HeSetGLAreaInitProc (glarea, glarea_init_proc); HeSetGLAreaRepaintProc (glarea, glarea_repaint_proc); /* ici on laisse la ResizeProc par défaut du GLArea */ HeFit (princ); return HeMainLoop (princ); }