/* xextrusion initialization routine */ ENTRYPOINT void init_extrusion (ModeInfo * mi) { int screen = MI_SCREEN(mi); extrusionstruct *gp; if (MI_IS_WIREFRAME(mi)) do_light = 0; if (Extrusion == NULL) { if ((Extrusion = (extrusionstruct *) calloc(MI_NUM_SCREENS(mi), sizeof (extrusionstruct))) == NULL) return; } gp = &Extrusion[screen]; gp->window = MI_WINDOW(mi); if ((gp->glx_context = init_GL(mi)) != NULL) { reshape_extrusion(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); chooseExtrusionExample(mi); } else { MI_CLEARWINDOW(mi); } }
/* main OpenGL initialization routine */ static void initializeGL(ModeInfo *mi, GLsizei width, GLsizei height) { int style; int mode; reshape_extrusion(mi, width, height); glViewport( 0, 0, width, height ); glEnable(GL_DEPTH_TEST); glDisable (GL_CULL_FACE); glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, True); glShadeModel(GL_SMOOTH); # ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */ MI_IS_WIREFRAME(mi) = 0; # endif if (do_light) SetupLight(); if (MI_IS_WIREFRAME(mi)) { glPolygonMode(GL_FRONT,GL_LINE); glPolygonMode(GL_BACK,GL_LINE); } if (do_texture) { Create_Texture(mi, which_image); glEnable(GL_TEXTURE_2D); /* configure the pipeline */ style = TUBE_JN_CAP; style |= TUBE_CONTOUR_CLOSED; style |= TUBE_NORM_FACET; style |= TUBE_JN_ANGLE; gleSetJoinStyle (style); if (do_texture) { mode = GLE_TEXTURE_ENABLE | GLE_TEXTURE_VERTEX_MODEL_FLAT; glMatrixMode (GL_TEXTURE); glLoadIdentity (); glScalef (0.25, 0.1, 1); glMatrixMode (GL_MODELVIEW); gleTextureMode (mode); } } }
/* xextrusion initialization routine */ ENTRYPOINT void init_extrusion (ModeInfo * mi) { int screen = MI_SCREEN(mi); extrusionstruct *gp; if (MI_IS_WIREFRAME(mi)) do_light = 0; MI_INIT(mi, Extrusion, NULL); gp = &Extrusion[screen]; gp->window = MI_WINDOW(mi); if ((gp->glx_context = init_GL(mi)) != NULL) { reshape_extrusion(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); chooseExtrusionExample(mi); } else { MI_CLEARWINDOW(mi); } }