static void hugsprim_glMapGrid1d_16(HugsStackPtr hugs_root) { HsInt32 arg1; HsDouble arg2; HsDouble arg3; arg1 = hugs->getInt32(); arg2 = hugs->getDouble(); arg3 = hugs->getDouble(); glMapGrid1d(arg1, arg2, arg3); hugs->returnIO(hugs_root,0); }
void __glXDisp_MapGrid1d(GLbyte *pc) { #ifdef __GLX_ALIGN64 if ((unsigned long)(pc) & 7) { __GLX_MEM_COPY(pc-4, pc, 20); pc -= 4; } #endif glMapGrid1d( *(GLint *)(pc + 16), *(GLdouble *)(pc + 0), *(GLdouble *)(pc + 8) ); }
static void RenderEval(void) { if (colorType) { glEnable(GL_MAP1_COLOR_4); glEnable(GL_MAP2_COLOR_4); } else { glDisable(GL_MAP1_COLOR_4); glDisable(GL_MAP2_COLOR_4); } if (textureType) { glEnable(GL_TEXTURE_2D); glEnable(GL_MAP2_TEXTURE_COORD_2); } else { glDisable(GL_TEXTURE_2D); glDisable(GL_MAP2_TEXTURE_COORD_2); } if (polygonFilled) { glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } else { glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); } glShadeModel(GL_SMOOTH); switch (mapType) { case EVAL: switch (arrayType) { case ONE_D: glDisable(GL_MAP2_VERTEX_4); glEnable(GL_MAP1_VERTEX_4); DrawPoints1(); DrawMapEval1(0.1 / VORDER); break; case TWO_D: glDisable(GL_MAP1_VERTEX_4); glEnable(GL_MAP2_VERTEX_4); DrawPoints2(); DrawMapEval2(0.1 / VMAJOR_ORDER, 0.1 / VMINOR_ORDER); break; } break; case MESH: switch (arrayType) { case ONE_D: DrawPoints1(); glDisable(GL_MAP2_VERTEX_4); glEnable(GL_MAP1_VERTEX_4); glColor3f(0.0, 0.0, 1.0); glMapGrid1d(40, 0.0, 1.0); if (mapPoint) { glPointSize(2); glEvalMesh1(GL_POINT, 0, 40); } else { glEvalMesh1(GL_LINE, 0, 40); } break; case TWO_D: DrawPoints2(); glDisable(GL_MAP1_VERTEX_4); glEnable(GL_MAP2_VERTEX_4); glColor3f(0.0, 0.0, 1.0); glMapGrid2d(20, 0.0, 1.0, 20, 0.0, 1.0); if (mapPoint) { glPointSize(2); glEvalMesh2(GL_POINT, 0, 20, 0, 20); } else if (polygonFilled) { glEvalMesh2(GL_FILL, 0, 20, 0, 20); } else { glEvalMesh2(GL_LINE, 0, 20, 0, 20); } break; } break; } }
static void cdfpoly(cdCtxCanvas *ctxcanvas, int mode, cdfPoint* poly, int n) { int i; if (mode == CD_CLIP) return; if (mode == CD_BEZIER) { int i, prec = 100; double (*points)[3] = malloc(n * sizeof(*points)); for(i = 0; i < n; i++) { points[i][0] = poly[i].x; points[i][1] = poly[i].y; points[i][2] = 0; } glMap1d(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, n, &points[0][0]); glEnable(GL_MAP1_VERTEX_3); glMapGrid1d(prec, 0.0, 1.0); glEvalMesh1(GL_LINE, 0, prec); glDisable(GL_MAP1_VERTEX_3); free(points); return; } if (mode == CD_PATH) { cdfSimPolyPath(ctxcanvas->canvas, poly, n); return; } switch (mode) { case CD_CLOSED_LINES : glBegin(GL_LINE_LOOP); break; case CD_OPEN_LINES : glBegin(GL_LINE_STRIP); break; case CD_FILL : if(ctxcanvas->canvas->back_opacity == CD_OPAQUE && glIsEnabled(GL_POLYGON_STIPPLE)) { glDisable(GL_POLYGON_STIPPLE); glColor4ub(cdRed(ctxcanvas->canvas->background), cdGreen(ctxcanvas->canvas->background), cdBlue(ctxcanvas->canvas->background), cdAlpha(ctxcanvas->canvas->background)); glBegin(GL_POLYGON); for(i = 0; i < n; i++) glVertex2d(poly[i].x, poly[i].y); glEnd(); /* restore the foreground color */ glColor4ub(cdRed(ctxcanvas->canvas->foreground), cdGreen(ctxcanvas->canvas->foreground), cdBlue(ctxcanvas->canvas->foreground), cdAlpha(ctxcanvas->canvas->foreground)); glEnable(GL_POLYGON_STIPPLE); } glBegin(GL_POLYGON); break; } for(i = 0; i < n; i++) glVertex2d(poly[i].x, poly[i].y); glEnd(); (void)ctxcanvas; }
static void RenderEval(void) { if (colorType) { glEnable(GL_MAP1_COLOR_4); glEnable(GL_MAP2_COLOR_4); } else { glDisable(GL_MAP1_COLOR_4); glDisable(GL_MAP2_COLOR_4); } if (textureType) { glEnable(GL_TEXTURE_2D); glEnable(GL_MAP2_TEXTURE_COORD_2); } else { glDisable(GL_TEXTURE_2D); glDisable(GL_MAP2_TEXTURE_COORD_2); } if (polygonFilled) { glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } else { glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); } glShadeModel(GL_SMOOTH); switch (mapType) { case EVAL: switch (arrayType) { case ONE_D: glDisable(GL_MAP2_VERTEX_4); glEnable(GL_MAP1_VERTEX_4); DrawPoints1(); DrawMapEval1(0.1 / VORDER); break; case TWO_D: glDisable(GL_MAP1_VERTEX_4); glEnable(GL_MAP2_VERTEX_4); DrawPoints2(); DrawMapEval2(0.1 / VMAJOR_ORDER, 0.1 / VMINOR_ORDER); break; } break; case MESH: switch (arrayType) { case ONE_D: DrawPoints1(); glDisable(GL_MAP2_VERTEX_4); glEnable(GL_MAP1_VERTEX_4); glColor3f(0.0, 0.0, 1.0); glMapGrid1d(40, 0.0, 1.0); if (mapPoint) { glPointSize(2); glEvalMesh1(GL_POINT, 0, 40); } else { glEvalMesh1(GL_LINE, 0, 40); } break; case TWO_D: DrawPoints2(); glDisable(GL_MAP1_VERTEX_4); glEnable(GL_MAP2_VERTEX_4); glColor3f(0.0, 0.0, 1.0); glMapGrid2d(20, 0.0, 1.0, 20, 0.0, 1.0); if (mapPoint) { glPointSize(2); glEvalMesh2(GL_POINT, 0, 20, 0, 20); } else if (polygonFilled) { glEvalMesh2(GL_FILL, 0, 20, 0, 20); } else { glEvalMesh2(GL_LINE, 0, 20, 0, 20); } break; default:; /* Mesa makes GLenum be a C "enum" and gcc will warn if all the cases of an enum are not tested in a switch statement. Add default case to supress the error. */ } break; } }
M(void, glMapGrid1d, jint un, jdouble u1, jdouble u2) { glMapGrid1d(un, u1, u2); }