mesa: remove GLvertexformat::EvalMesh1(), EvalMesh2()
authorBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 01:15:33 +0000 (19:15 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 15:03:16 +0000 (09:03 -0600)
See previous commit comments.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/main/dd.h
src/mesa/main/dlist.c
src/mesa/main/eval.c
src/mesa/main/eval.h
src/mesa/main/vtxfmt.c
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_exec_array.c
src/mesa/vbo/vbo_noop.c
src/mesa/vbo/vbo_save_api.c

index e3240a26f8f0728d9be588c0fccd9c4f0978b641..4c76fa496161f8ceb5db05f7dac26a532912aa75 100644 (file)
@@ -1019,22 +1019,6 @@ typedef struct {
    void (GLAPIENTRYP VertexAttribP4uiv)( GLuint index, GLenum type,
                                         GLboolean normalized,
                                         const GLuint *value);
-
-   /*@}*/
-
-   /**
-    * \name Eval
-    *
-    * If you don't support eval, fallback to the default vertex format
-    * on receiving an eval call and use the pipeline mechanism to
-    * provide partial T&L acceleration.
-    *
-    * Mesa will provide a set of helper functions to do eval within
-    * accelerated vertex formats, eventually...
-    */
-   /*@{*/
-   void (GLAPIENTRYP EvalMesh1)( GLenum mode, GLint i1, GLint i2 );
-   void (GLAPIENTRYP EvalMesh2)( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
    /*@}*/
 
 } GLvertexformat;
index ae2a55296063f55e26485ab60d89e5087ce7fb8b..c37b15ee64be1f144e2a8a12bb6892034bb90699 100644 (file)
@@ -9592,8 +9592,6 @@ save_vtxfmt_init(GLvertexformat * vfmt)
    vfmt->EvalCoord2fv = save_EvalCoord2fv;
    vfmt->EvalPoint1 = save_EvalPoint1;
    vfmt->EvalPoint2 = save_EvalPoint2;
-   vfmt->EvalMesh1 = save_EvalMesh1;
-   vfmt->EvalMesh2 = save_EvalMesh2;
 
    vfmt->FogCoordfEXT = save_FogCoordfEXT;
    vfmt->FogCoordfvEXT = save_FogCoordfvEXT;
index 4b6d63c697bd2a7e7994cd8d497cdd17aba20b4c..349331f00025bbfe7a700e51b106fad2ed480264 100644 (file)
@@ -824,8 +824,7 @@ _mesa_MapGrid2d( GLint un, GLdouble u1, GLdouble u2,
 
 void
 _mesa_install_eval_vtxfmt(struct _glapi_table *disp,
-                          const GLvertexformat *vfmt,
-                          bool beginend)
+                          const GLvertexformat *vfmt)
 {
    SET_EvalCoord1f(disp, vfmt->EvalCoord1f);
    SET_EvalCoord1fv(disp, vfmt->EvalCoord1fv);
@@ -833,13 +832,6 @@ _mesa_install_eval_vtxfmt(struct _glapi_table *disp,
    SET_EvalCoord2fv(disp, vfmt->EvalCoord2fv);
    SET_EvalPoint1(disp, vfmt->EvalPoint1);
    SET_EvalPoint2(disp, vfmt->EvalPoint2);
-
-   /* glEvalMesh1 and glEvalMesh2 are not allowed between glBegin and glEnd.
-    */
-   if (!beginend) {
-      SET_EvalMesh1(disp, vfmt->EvalMesh1);
-      SET_EvalMesh2(disp, vfmt->EvalMesh2);
-   }
 }
 
 
index 9b6358b0cac3f04f5bdd53a40ff762fbab5e9d37..33240f00d339e99cbfe510b6b8e705e91c991502 100644 (file)
@@ -65,8 +65,7 @@ extern GLfloat *_mesa_copy_map_points2d(GLenum target,
 
 extern void
 _mesa_install_eval_vtxfmt(struct _glapi_table *disp,
-                          const GLvertexformat *vfmt,
-                          bool beginend);
+                          const GLvertexformat *vfmt);
 
 extern void _mesa_init_eval( struct gl_context *ctx );
 extern void _mesa_free_eval_data( struct gl_context *ctx );
index 3a0e7d357ee315fdf8f663402ac5df732a17db7c..d7bf98ec8ec3703b0fb919efb86445a6ed85be91 100644 (file)
@@ -63,7 +63,7 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
    }
 
    if (ctx->API == API_OPENGL_COMPAT) {
-      _mesa_install_eval_vtxfmt(tab, vfmt, beginend);
+      _mesa_install_eval_vtxfmt(tab, vfmt);
    }
 
    if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) {
index 93fa8d7bb19f842a9c0aff50ecc4146bf0a46008..88cce984f8d2a99418814d4bbd160f762eafdc35 100644 (file)
@@ -654,111 +654,6 @@ static void GLAPIENTRY vbo_exec_EvalPoint2( GLint i, GLint j )
 }
 
 
-static void GLAPIENTRY
-vbo_exec_EvalMesh1(GLenum mode, GLint i1, GLint i2)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   GLint i;
-   GLfloat u, du;
-   GLenum prim;
-
-   switch (mode) {
-   case GL_POINT:
-      prim = GL_POINTS;
-      break;
-   case GL_LINE:
-      prim = GL_LINE_STRIP;
-      break;
-   default:
-      _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh1(mode)" );
-      return;
-   }
-
-   /* No effect if vertex maps disabled.
-    */
-   if (!ctx->Eval.Map1Vertex4 && 
-       !ctx->Eval.Map1Vertex3)
-      return;
-
-   du = ctx->Eval.MapGrid1du;
-   u = ctx->Eval.MapGrid1u1 + i1 * du;
-
-   CALL_Begin(GET_DISPATCH(), (prim));
-   for (i=i1;i<=i2;i++,u+=du) {
-      CALL_EvalCoord1f(GET_DISPATCH(), (u));
-   }
-   CALL_End(GET_DISPATCH(), ());
-}
-
-
-static void GLAPIENTRY
-vbo_exec_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   GLfloat u, du, v, dv, v1, u1;
-   GLint i, j;
-
-   switch (mode) {
-   case GL_POINT:
-   case GL_LINE:
-   case GL_FILL:
-      break;
-   default:
-      _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh2(mode)" );
-      return;
-   }
-
-   /* No effect if vertex maps disabled.
-    */
-   if (!ctx->Eval.Map2Vertex4 && 
-       !ctx->Eval.Map2Vertex3)
-      return;
-
-   du = ctx->Eval.MapGrid2du;
-   dv = ctx->Eval.MapGrid2dv;
-   v1 = ctx->Eval.MapGrid2v1 + j1 * dv;
-   u1 = ctx->Eval.MapGrid2u1 + i1 * du;
-
-   switch (mode) {
-   case GL_POINT:
-      CALL_Begin(GET_DISPATCH(), (GL_POINTS));
-      for (v=v1,j=j1;j<=j2;j++,v+=dv) {
-        for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
-        }
-      }
-      CALL_End(GET_DISPATCH(), ());
-      break;
-   case GL_LINE:
-      for (v=v1,j=j1;j<=j2;j++,v+=dv) {
-        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
-        for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
-        }
-        CALL_End(GET_DISPATCH(), ());
-      }
-      for (u=u1,i=i1;i<=i2;i++,u+=du) {
-        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
-        for (v=v1,j=j1;j<=j2;j++,v+=dv) {
-           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
-        }
-        CALL_End(GET_DISPATCH(), ());
-      }
-      break;
-   case GL_FILL:
-      for (v=v1,j=j1;j<j2;j++,v+=dv) {
-        CALL_Begin(GET_DISPATCH(), (GL_TRIANGLE_STRIP));
-        for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
-           CALL_EvalCoord2f(GET_DISPATCH(), (u, v+dv));
-        }
-        CALL_End(GET_DISPATCH(), ());
-      }
-      break;
-   }
-}
-
-
 /**
  * Called via glBegin.
  */
@@ -904,8 +799,6 @@ static void vbo_exec_vtxfmt_init( struct vbo_exec_context *exec )
    vfmt->EvalCoord2fv = vbo_exec_EvalCoord2fv;
    vfmt->EvalPoint1 = vbo_exec_EvalPoint1;
    vfmt->EvalPoint2 = vbo_exec_EvalPoint2;
-   vfmt->EvalMesh1 = vbo_exec_EvalMesh1;
-   vfmt->EvalMesh2 = vbo_exec_EvalMesh2;
 
    /* from attrib_tmp.h:
     */
index f1abe0490c4cec839acc5c0a8490e07f28423d21..d2cadf941bc6c2fe47bf0307635c1094e0307141 100644 (file)
@@ -650,6 +650,111 @@ vbo_exec_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
 }
 
 
+static void GLAPIENTRY
+vbo_exec_EvalMesh1(GLenum mode, GLint i1, GLint i2)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   GLfloat u, du;
+   GLenum prim;
+
+   switch (mode) {
+   case GL_POINT:
+      prim = GL_POINTS;
+      break;
+   case GL_LINE:
+      prim = GL_LINE_STRIP;
+      break;
+   default:
+      _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh1(mode)" );
+      return;
+   }
+
+   /* No effect if vertex maps disabled.
+    */
+   if (!ctx->Eval.Map1Vertex4 && 
+       !ctx->Eval.Map1Vertex3)
+      return;
+
+   du = ctx->Eval.MapGrid1du;
+   u = ctx->Eval.MapGrid1u1 + i1 * du;
+
+   CALL_Begin(GET_DISPATCH(), (prim));
+   for (i=i1;i<=i2;i++,u+=du) {
+      CALL_EvalCoord1f(GET_DISPATCH(), (u));
+   }
+   CALL_End(GET_DISPATCH(), ());
+}
+
+
+static void GLAPIENTRY
+vbo_exec_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLfloat u, du, v, dv, v1, u1;
+   GLint i, j;
+
+   switch (mode) {
+   case GL_POINT:
+   case GL_LINE:
+   case GL_FILL:
+      break;
+   default:
+      _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh2(mode)" );
+      return;
+   }
+
+   /* No effect if vertex maps disabled.
+    */
+   if (!ctx->Eval.Map2Vertex4 && 
+       !ctx->Eval.Map2Vertex3)
+      return;
+
+   du = ctx->Eval.MapGrid2du;
+   dv = ctx->Eval.MapGrid2dv;
+   v1 = ctx->Eval.MapGrid2v1 + j1 * dv;
+   u1 = ctx->Eval.MapGrid2u1 + i1 * du;
+
+   switch (mode) {
+   case GL_POINT:
+      CALL_Begin(GET_DISPATCH(), (GL_POINTS));
+      for (v=v1,j=j1;j<=j2;j++,v+=dv) {
+        for (u=u1,i=i1;i<=i2;i++,u+=du) {
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
+        }
+      }
+      CALL_End(GET_DISPATCH(), ());
+      break;
+   case GL_LINE:
+      for (v=v1,j=j1;j<=j2;j++,v+=dv) {
+        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
+        for (u=u1,i=i1;i<=i2;i++,u+=du) {
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
+        }
+        CALL_End(GET_DISPATCH(), ());
+      }
+      for (u=u1,i=i1;i<=i2;i++,u+=du) {
+        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
+        for (v=v1,j=j1;j<=j2;j++,v+=dv) {
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
+        }
+        CALL_End(GET_DISPATCH(), ());
+      }
+      break;
+   case GL_FILL:
+      for (v=v1,j=j1;j<j2;j++,v+=dv) {
+        CALL_Begin(GET_DISPATCH(), (GL_TRIANGLE_STRIP));
+        for (u=u1,i=i1;i<=i2;i++,u+=du) {
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v+dv));
+        }
+        CALL_End(GET_DISPATCH(), ());
+      }
+      break;
+   }
+}
+
+
 /**
  * Called from glDrawArrays when in immediate mode (not display list mode).
  */
@@ -1400,6 +1505,8 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx,
 
    if (ctx->API == API_OPENGL_COMPAT) {
       SET_Rectf(exec, vbo_exec_Rectf);
+      SET_EvalMesh1(exec, vbo_exec_EvalMesh1);
+      SET_EvalMesh2(exec, vbo_exec_EvalMesh2);
    }
 
    if (_mesa_is_desktop_gl(ctx)) {
index cff26bf14b3b8f773379a74e5f3a940d114b8e94..8ba4959bd1f6a8c252d8536bf5e81c8e9db639c9 100644 (file)
@@ -347,17 +347,6 @@ _mesa_noop_PrimitiveRestartNV(void)
 }
 
 
-static void GLAPIENTRY
-_mesa_noop_EvalMesh1(GLenum mode, GLint i1, GLint i2)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
-{
-}
-
-
 /**
  * Build a vertexformat of functions that are no-ops.
  * These are used in out-of-memory situations when we have no VBO
@@ -388,8 +377,6 @@ _mesa_noop_vtxfmt_init(GLvertexformat * vfmt)
    vfmt->EvalCoord2fv = _mesa_noop_EvalCoord2fv;
    vfmt->EvalPoint1 = _mesa_noop_EvalPoint1;
    vfmt->EvalPoint2 = _mesa_noop_EvalPoint2;
-   vfmt->EvalMesh1 = _mesa_noop_EvalMesh1;
-   vfmt->EvalMesh2 = _mesa_noop_EvalMesh2;
 
    vfmt->FogCoordfEXT = _mesa_noop_FogCoordfEXT;
    vfmt->FogCoordfvEXT = _mesa_noop_FogCoordfvEXT;
index 4d9a6366a584bfb40ed39911423856c938abedb9..b8dd90c67f165c5b4f9bbb2072d4005b6bf818ae 100644 (file)
@@ -993,30 +993,6 @@ _save_End(void)
 }
 
 
-static void GLAPIENTRY
-_save_EvalMesh1(GLenum mode, GLint i1, GLint i2)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) i1;
-   (void) i2;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glEvalMesh1");
-}
-
-
-static void GLAPIENTRY
-_save_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) i1;
-   (void) i2;
-   (void) j1;
-   (void) j2;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glEvalMesh2");
-}
-
-
 static void GLAPIENTRY
 _save_Begin(GLenum mode)
 {
@@ -1359,8 +1335,6 @@ _save_vtxfmt_init(struct gl_context *ctx)
    vfmt->EvalCoord2fv = _save_EvalCoord2fv;
    vfmt->EvalPoint1 = _save_EvalPoint1;
    vfmt->EvalPoint2 = _save_EvalPoint2;
-   vfmt->EvalMesh1 = _save_EvalMesh1;
-   vfmt->EvalMesh2 = _save_EvalMesh2;
 
    /* These calls all generate GL_INVALID_OPERATION since this vtxfmt is
     * only used when we're inside a glBegin/End pair.