mesa/formatquery: Add (GET_)TEXTURE_IMAGE_TYPE pnames
[mesa.git] / src / mesa / main / vtxfmt.c
index a2f4150785595c3901361b2ea8be5ca1363c6d42..81bf4c589eac28057ad965a64dbcaac6038fbeec 100644 (file)
@@ -1,6 +1,5 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.3
  *
  * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
  *
@@ -23,7 +22,7 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *    Keith Whitwell <keith@tungstengraphics.com> Gareth Hughes
+ *    Keith Whitwell <keithw@vmware.com> Gareth Hughes
  */
 
 #include "glheader.h"
 
 
 /**
- * Use the per-vertex functions found in <vfmt> to initialize the given
- * API dispatch table.
- * If beginend is true, only plug in the functions which are legal
- * between glBegin/glEnd.
+ * Copy the functions found in the GLvertexformat object into the
+ * dispatch table.
  */
 static void
 install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
-               const GLvertexformat *vfmt, bool beginend)
+               const GLvertexformat *vfmt)
 {
    assert(ctx->Version > 0);
 
@@ -63,7 +60,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) {
@@ -112,51 +109,6 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
       SET_Begin(tab, vfmt->Begin);
       SET_End(tab, vfmt->End);
       SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV);
-
-      SET_Rectf(tab, vfmt->Rectf);
-   }
-
-   if (!beginend) {
-      /* These functions are only valid outside glBegin/glEnd */
-      SET_DrawArrays(tab, vfmt->DrawArrays);
-      SET_DrawElements(tab, vfmt->DrawElements);
-
-      if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
-         SET_DrawRangeElements(tab, vfmt->DrawRangeElements);
-      }
-
-      SET_MultiDrawElementsEXT(tab, vfmt->MultiDrawElementsEXT);
-
-      if (_mesa_is_desktop_gl(ctx)) {
-         SET_DrawElementsBaseVertex(tab, vfmt->DrawElementsBaseVertex);
-         SET_DrawRangeElementsBaseVertex(tab,
-                                         vfmt->DrawRangeElementsBaseVertex);
-         SET_MultiDrawElementsBaseVertex(tab,
-                                         vfmt->MultiDrawElementsBaseVertex);
-         SET_DrawArraysInstancedBaseInstance(tab,
-                                     vfmt->DrawArraysInstancedBaseInstance);
-         SET_DrawElementsInstancedBaseInstance(tab,
-                                   vfmt->DrawElementsInstancedBaseInstance);
-         SET_DrawElementsInstancedBaseVertex(tab,
-                                     vfmt->DrawElementsInstancedBaseVertex);
-         SET_DrawElementsInstancedBaseVertexBaseInstance(tab,
-                         vfmt->DrawElementsInstancedBaseVertexBaseInstance);
-      }
-
-      if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
-         SET_DrawArraysInstancedARB(tab, vfmt->DrawArraysInstanced);
-         SET_DrawElementsInstancedARB(tab, vfmt->DrawElementsInstanced);
-      }
-
-      if (_mesa_is_desktop_gl(ctx)) {
-         SET_DrawTransformFeedback(tab, vfmt->DrawTransformFeedback);
-         SET_DrawTransformFeedbackStream(tab,
-                                         vfmt->DrawTransformFeedbackStream);
-         SET_DrawTransformFeedbackInstanced(tab,
-                                      vfmt->DrawTransformFeedbackInstanced);
-         SET_DrawTransformFeedbackStreamInstanced(tab,
-                                vfmt->DrawTransformFeedbackStreamInstanced);
-      }
    }
 
    /* Originally for GL_NV_vertex_program, this is also used by dlist.c */
@@ -254,6 +206,18 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
       SET_VertexAttribP3uiv(tab, vfmt->VertexAttribP3uiv);
       SET_VertexAttribP4uiv(tab, vfmt->VertexAttribP4uiv);
    }
+
+   if (ctx->API == API_OPENGL_CORE) {
+      SET_VertexAttribL1d(tab, vfmt->VertexAttribL1d);
+      SET_VertexAttribL2d(tab, vfmt->VertexAttribL2d);
+      SET_VertexAttribL3d(tab, vfmt->VertexAttribL3d);
+      SET_VertexAttribL4d(tab, vfmt->VertexAttribL4d);
+
+      SET_VertexAttribL1dv(tab, vfmt->VertexAttribL1dv);
+      SET_VertexAttribL2dv(tab, vfmt->VertexAttribL2dv);
+      SET_VertexAttribL3dv(tab, vfmt->VertexAttribL3dv);
+      SET_VertexAttribL4dv(tab, vfmt->VertexAttribL4dv);
+   }
 }
 
 
@@ -263,9 +227,9 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
 void
 _mesa_install_exec_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt)
 {
-   install_vtxfmt(ctx, ctx->Exec, vfmt, false);
+   install_vtxfmt(ctx, ctx->Exec, vfmt);
    if (ctx->BeginEnd)
-      install_vtxfmt(ctx, ctx->BeginEnd, vfmt, true);
+      install_vtxfmt(ctx, ctx->BeginEnd, vfmt);
 }
 
 
@@ -277,7 +241,7 @@ void
 _mesa_install_save_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt)
 {
    if (_mesa_is_desktop_gl(ctx))
-      install_vtxfmt(ctx, ctx->Save, vfmt, false);
+      install_vtxfmt(ctx, ctx->Save, vfmt);
 }