[Mesa-dev] [PATCH v3 6/6] intel: add support for using API_OPENGL_CORE
Jordan Justen
jljusten at gmail.com
Fri Jul 27 14:29:04 PDT 2012
Hmm. It seems I mistakenly combined patches 6 & 7 in the series.
I'll send out a fixed v4. Sorry for the extra mail.
-Jordan
On Fri, Jul 27, 2012 at 2:07 PM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
> src/mesa/drivers/dri/intel/intel_extensions.c | 2 +-
> src/mesa/main/api_exec.c | 227 +++++++++++++++----------
> src/mesa/main/api_exec.h | 3 +-
> src/mesa/main/context.c | 2 +-
> src/mesa/main/vtxfmt.c | 167 +++++++++---------
> 5 files changed, 233 insertions(+), 168 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
> index c2bc072..b752216 100755
> --- a/src/mesa/drivers/dri/intel/intel_extensions.c
> +++ b/src/mesa/drivers/dri/intel/intel_extensions.c
> @@ -44,7 +44,7 @@ intelInitExtensions(struct gl_context *ctx)
>
> ctx->Extensions.ARB_draw_elements_base_vertex = true;
> ctx->Extensions.ARB_explicit_attrib_location = true;
> - if (ctx->API == API_OPENGL)
> + if (_mesa_is_desktop_gl(ctx))
> ctx->Extensions.ARB_framebuffer_object = true;
> ctx->Extensions.ARB_half_float_pixel = true;
> ctx->Extensions.ARB_map_buffer_range = true;
> diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
> index 19e7f98..81be46d 100644
> --- a/src/mesa/main/api_exec.c
> +++ b/src/mesa/main/api_exec.c
> @@ -120,7 +120,7 @@
> * \param exec dispatch table.
> */
> struct _glapi_table *
> -_mesa_create_exec_table(void)
> +_mesa_create_exec_table(struct gl_context *ctx)
> {
> struct _glapi_table *exec;
>
> @@ -133,7 +133,10 @@ _mesa_create_exec_table(void)
> #endif
>
> /* load the dispatch slots we understand */
> - SET_AlphaFunc(exec, _mesa_AlphaFunc);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_AlphaFunc(exec, _mesa_AlphaFunc);
> + }
> +
> SET_BlendFunc(exec, _mesa_BlendFunc);
> SET_Clear(exec, _mesa_Clear);
> SET_ClearColor(exec, _mesa_ClearColor);
> @@ -149,42 +152,62 @@ _mesa_create_exec_table(void)
> SET_Finish(exec, _mesa_Finish);
> SET_Flush(exec, _mesa_Flush);
> SET_FrontFace(exec, _mesa_FrontFace);
> - SET_Frustum(exec, _mesa_Frustum);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Frustum(exec, _mesa_Frustum);
> + }
> SET_GetError(exec, _mesa_GetError);
> SET_GetFloatv(exec, _mesa_GetFloatv);
> SET_GetString(exec, _mesa_GetString);
> - SET_LineStipple(exec, _mesa_LineStipple);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_LineStipple(exec, _mesa_LineStipple);
> + }
> SET_LineWidth(exec, _mesa_LineWidth);
> - SET_LoadIdentity(exec, _mesa_LoadIdentity);
> - SET_LoadMatrixf(exec, _mesa_LoadMatrixf);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_LoadIdentity(exec, _mesa_LoadIdentity);
> + SET_LoadMatrixf(exec, _mesa_LoadMatrixf);
> + }
> SET_LogicOp(exec, _mesa_LogicOp);
> - SET_MatrixMode(exec, _mesa_MatrixMode);
> - SET_MultMatrixf(exec, _mesa_MultMatrixf);
> - SET_Ortho(exec, _mesa_Ortho);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_MatrixMode(exec, _mesa_MatrixMode);
> + SET_MultMatrixf(exec, _mesa_MultMatrixf);
> + SET_Ortho(exec, _mesa_Ortho);
> + }
> SET_PixelStorei(exec, _mesa_PixelStorei);
> - SET_PopMatrix(exec, _mesa_PopMatrix);
> - SET_PushMatrix(exec, _mesa_PushMatrix);
> - SET_Rotatef(exec, _mesa_Rotatef);
> - SET_Scalef(exec, _mesa_Scalef);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_PopMatrix(exec, _mesa_PopMatrix);
> + SET_PushMatrix(exec, _mesa_PushMatrix);
> + SET_Rotatef(exec, _mesa_Rotatef);
> + SET_Scalef(exec, _mesa_Scalef);
> + }
> SET_Scissor(exec, _mesa_Scissor);
> - SET_ShadeModel(exec, _mesa_ShadeModel);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_ShadeModel(exec, _mesa_ShadeModel);
> + }
> SET_StencilFunc(exec, _mesa_StencilFunc);
> SET_StencilMask(exec, _mesa_StencilMask);
> SET_StencilOp(exec, _mesa_StencilOp);
> - SET_TexEnvfv(exec, _mesa_TexEnvfv);
> - SET_TexEnvi(exec, _mesa_TexEnvi);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_TexEnvfv(exec, _mesa_TexEnvfv);
> + SET_TexEnvi(exec, _mesa_TexEnvi);
> + }
> SET_TexImage2D(exec, _mesa_TexImage2D);
> SET_TexParameteri(exec, _mesa_TexParameteri);
> - SET_Translatef(exec, _mesa_Translatef);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Translatef(exec, _mesa_Translatef);
> + }
> SET_Viewport(exec, _mesa_Viewport);
>
> - _mesa_init_accum_dispatch(exec);
> - _mesa_init_dlist_dispatch(exec);
> + if (ctx->API != API_OPENGL_CORE) {
> + _mesa_init_accum_dispatch(exec);
> + _mesa_init_dlist_dispatch(exec);
> + }
>
> SET_ClearDepth(exec, _mesa_ClearDepth);
> - SET_ClearIndex(exec, _mesa_ClearIndex);
> - SET_ClipPlane(exec, _mesa_ClipPlane);
> - SET_ColorMaterial(exec, _mesa_ColorMaterial);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_ClearIndex(exec, _mesa_ClearIndex);
> + SET_ClipPlane(exec, _mesa_ClipPlane);
> + SET_ColorMaterial(exec, _mesa_ColorMaterial);
> + }
> SET_DepthFunc(exec, _mesa_DepthFunc);
> SET_DepthMask(exec, _mesa_DepthMask);
> SET_DepthRange(exec, _mesa_DepthRange);
> @@ -192,43 +215,53 @@ _mesa_create_exec_table(void)
> _mesa_init_drawpix_dispatch(exec);
> _mesa_init_feedback_dispatch(exec);
>
> - SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT);
> - SET_Fogf(exec, _mesa_Fogf);
> - SET_Fogfv(exec, _mesa_Fogfv);
> - SET_Fogi(exec, _mesa_Fogi);
> - SET_Fogiv(exec, _mesa_Fogiv);
> - SET_GetClipPlane(exec, _mesa_GetClipPlane);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT);
> + SET_Fogf(exec, _mesa_Fogf);
> + SET_Fogfv(exec, _mesa_Fogfv);
> + SET_Fogi(exec, _mesa_Fogi);
> + SET_Fogiv(exec, _mesa_Fogiv);
> + SET_GetClipPlane(exec, _mesa_GetClipPlane);
> + }
> SET_GetBooleanv(exec, _mesa_GetBooleanv);
> SET_GetDoublev(exec, _mesa_GetDoublev);
> SET_GetIntegerv(exec, _mesa_GetIntegerv);
> - SET_GetLightfv(exec, _mesa_GetLightfv);
> - SET_GetLightiv(exec, _mesa_GetLightiv);
> - SET_GetMaterialfv(exec, _mesa_GetMaterialfv);
> - SET_GetMaterialiv(exec, _mesa_GetMaterialiv);
> - SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple);
> - SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv);
> - SET_GetTexEnviv(exec, _mesa_GetTexEnviv);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_GetLightfv(exec, _mesa_GetLightfv);
> + SET_GetLightiv(exec, _mesa_GetLightiv);
> + SET_GetMaterialfv(exec, _mesa_GetMaterialfv);
> + SET_GetMaterialiv(exec, _mesa_GetMaterialiv);
> + SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple);
> + SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv);
> + SET_GetTexEnviv(exec, _mesa_GetTexEnviv);
> + }
> SET_GetTexLevelParameterfv(exec, _mesa_GetTexLevelParameterfv);
> SET_GetTexLevelParameteriv(exec, _mesa_GetTexLevelParameteriv);
> SET_GetTexParameterfv(exec, _mesa_GetTexParameterfv);
> SET_GetTexParameteriv(exec, _mesa_GetTexParameteriv);
> SET_GetTexImage(exec, _mesa_GetTexImage);
> SET_Hint(exec, _mesa_Hint);
> - SET_IndexMask(exec, _mesa_IndexMask);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_IndexMask(exec, _mesa_IndexMask);
> + }
> SET_IsEnabled(exec, _mesa_IsEnabled);
> - SET_LightModelf(exec, _mesa_LightModelf);
> - SET_LightModelfv(exec, _mesa_LightModelfv);
> - SET_LightModeli(exec, _mesa_LightModeli);
> - SET_LightModeliv(exec, _mesa_LightModeliv);
> - SET_Lightf(exec, _mesa_Lightf);
> - SET_Lightfv(exec, _mesa_Lightfv);
> - SET_Lighti(exec, _mesa_Lighti);
> - SET_Lightiv(exec, _mesa_Lightiv);
> - SET_LoadMatrixd(exec, _mesa_LoadMatrixd);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_LightModelf(exec, _mesa_LightModelf);
> + SET_LightModelfv(exec, _mesa_LightModelfv);
> + SET_LightModeli(exec, _mesa_LightModeli);
> + SET_LightModeliv(exec, _mesa_LightModeliv);
> + SET_Lightf(exec, _mesa_Lightf);
> + SET_Lightfv(exec, _mesa_Lightfv);
> + SET_Lighti(exec, _mesa_Lighti);
> + SET_Lightiv(exec, _mesa_Lightiv);
> + SET_LoadMatrixd(exec, _mesa_LoadMatrixd);
> + }
>
> _mesa_init_eval_dispatch(exec);
>
> - SET_MultMatrixd(exec, _mesa_MultMatrixd);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_MultMatrixd(exec, _mesa_MultMatrixd);
> + }
>
> _mesa_init_pixel_dispatch(exec);
>
> @@ -236,17 +269,21 @@ _mesa_create_exec_table(void)
> SET_PointSize(exec, _mesa_PointSize);
> SET_PolygonMode(exec, _mesa_PolygonMode);
> SET_PolygonOffset(exec, _mesa_PolygonOffset);
> - SET_PolygonStipple(exec, _mesa_PolygonStipple);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_PolygonStipple(exec, _mesa_PolygonStipple);
> + }
>
> _mesa_init_attrib_dispatch(exec);
> _mesa_init_rastpos_dispatch(exec);
>
> SET_ReadPixels(exec, _mesa_ReadPixels);
> - SET_Rotated(exec, _mesa_Rotated);
> - SET_Scaled(exec, _mesa_Scaled);
> - SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT);
> - SET_TexEnvf(exec, _mesa_TexEnvf);
> - SET_TexEnviv(exec, _mesa_TexEnviv);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Rotated(exec, _mesa_Rotated);
> + SET_Scaled(exec, _mesa_Scaled);
> + SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT);
> + SET_TexEnvf(exec, _mesa_TexEnvf);
> + SET_TexEnviv(exec, _mesa_TexEnviv);
> + }
>
> _mesa_init_texgen_dispatch(exec);
>
> @@ -254,32 +291,42 @@ _mesa_create_exec_table(void)
> SET_TexParameterf(exec, _mesa_TexParameterf);
> SET_TexParameterfv(exec, _mesa_TexParameterfv);
> SET_TexParameteriv(exec, _mesa_TexParameteriv);
> - SET_Translated(exec, _mesa_Translated);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Translated(exec, _mesa_Translated);
> + }
>
> /* 1.1 */
> SET_BindTexture(exec, _mesa_BindTexture);
> SET_DeleteTextures(exec, _mesa_DeleteTextures);
> SET_GenTextures(exec, _mesa_GenTextures);
> #if _HAVE_FULL_GL
> - SET_AreTexturesResident(exec, _mesa_AreTexturesResident);
> - SET_ColorPointer(exec, _mesa_ColorPointer);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_AreTexturesResident(exec, _mesa_AreTexturesResident);
> + SET_ColorPointer(exec, _mesa_ColorPointer);
> + }
> SET_CopyTexImage1D(exec, _mesa_CopyTexImage1D);
> SET_CopyTexImage2D(exec, _mesa_CopyTexImage2D);
> SET_CopyTexSubImage1D(exec, _mesa_CopyTexSubImage1D);
> SET_CopyTexSubImage2D(exec, _mesa_CopyTexSubImage2D);
> - SET_DisableClientState(exec, _mesa_DisableClientState);
> - SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer);
> - SET_EnableClientState(exec, _mesa_EnableClientState);
> - SET_GetPointerv(exec, _mesa_GetPointerv);
> - SET_IndexPointer(exec, _mesa_IndexPointer);
> - SET_InterleavedArrays(exec, _mesa_InterleavedArrays);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_DisableClientState(exec, _mesa_DisableClientState);
> + SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer);
> + SET_EnableClientState(exec, _mesa_EnableClientState);
> + SET_GetPointerv(exec, _mesa_GetPointerv);
> + SET_IndexPointer(exec, _mesa_IndexPointer);
> + SET_InterleavedArrays(exec, _mesa_InterleavedArrays);
> + }
> SET_IsTexture(exec, _mesa_IsTexture);
> - SET_NormalPointer(exec, _mesa_NormalPointer);
> - SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures);
> - SET_TexCoordPointer(exec, _mesa_TexCoordPointer);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_NormalPointer(exec, _mesa_NormalPointer);
> + SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures);
> + SET_TexCoordPointer(exec, _mesa_TexCoordPointer);
> + }
> SET_TexSubImage1D(exec, _mesa_TexSubImage1D);
> SET_TexSubImage2D(exec, _mesa_TexSubImage2D);
> - SET_VertexPointer(exec, _mesa_VertexPointer);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_VertexPointer(exec, _mesa_VertexPointer);
> + }
> #endif
>
> /* 1.2 */
> @@ -327,31 +374,37 @@ _mesa_create_exec_table(void)
>
> /* 11. GL_EXT_histogram */
> #if 0
> - SET_GetHistogramEXT(exec, _mesa_GetHistogram);
> - SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv);
> - SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv);
> - SET_GetMinmaxEXT(exec, _mesa_GetMinmax);
> - SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv);
> - SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_GetHistogramEXT(exec, _mesa_GetHistogram);
> + SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv);
> + SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv);
> + SET_GetMinmaxEXT(exec, _mesa_GetMinmax);
> + SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv);
> + SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv);
> + }
> #endif
>
> /* 14. SGI_color_table */
> #if 0
> - SET_ColorTableSGI(exec, _mesa_ColorTable);
> - SET_ColorSubTableSGI(exec, _mesa_ColorSubTable);
> - SET_GetColorTableSGI(exec, _mesa_GetColorTable);
> - SET_GetColorTableParameterfvSGI(exec, _mesa_GetColorTableParameterfv);
> - SET_GetColorTableParameterivSGI(exec, _mesa_GetColorTableParameteriv);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_ColorTableSGI(exec, _mesa_ColorTable);
> + SET_ColorSubTableSGI(exec, _mesa_ColorSubTable);
> + SET_GetColorTableSGI(exec, _mesa_GetColorTable);
> + SET_GetColorTableParameterfvSGI(exec, _mesa_GetColorTableParameterfv);
> + SET_GetColorTableParameterivSGI(exec, _mesa_GetColorTableParameteriv);
> + }
> #endif
>
> /* 30. GL_EXT_vertex_array */
> #if _HAVE_FULL_GL
> - SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT);
> - SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT);
> - SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT);
> - SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT);
> - SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT);
> - SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT);
> + SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT);
> + SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT);
> + SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT);
> + SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT);
> + SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT);
> + }
> #endif
>
> /* 37. GL_EXT_blend_minmax */
> @@ -483,10 +536,12 @@ _mesa_create_exec_table(void)
>
> /* ARB 3. GL_ARB_transpose_matrix */
> #if _HAVE_FULL_GL
> - SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB);
> - SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB);
> - SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB);
> - SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB);
> + SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB);
> + SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB);
> + SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB);
> + }
> #endif
>
> /* ARB 5. GL_ARB_multisample */
> diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h
> index 29c953f..100e972 100644
> --- a/src/mesa/main/api_exec.h
> +++ b/src/mesa/main/api_exec.h
> @@ -28,12 +28,13 @@
>
>
> struct _glapi_table;
> +struct gl_context;
>
> extern struct _glapi_table *
> _mesa_alloc_dispatch_table(int size);
>
> extern struct _glapi_table *
> -_mesa_create_exec_table(void);
> +_mesa_create_exec_table(struct gl_context *ctx);
>
> extern struct _glapi_table *
> _mesa_create_exec_table_es1(void);
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index 7dbfe0f..05140a6 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -963,7 +963,7 @@ _mesa_initialize_context(struct gl_context *ctx,
> #if FEATURE_GL
> case API_OPENGL:
> case API_OPENGL_CORE:
> - ctx->Exec = _mesa_create_exec_table();
> + ctx->Exec = _mesa_create_exec_table(ctx);
> break;
> #endif
> #if FEATURE_ES1
> diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c
> index bc925b0..ce490ed 100644
> --- a/src/mesa/main/vtxfmt.c
> +++ b/src/mesa/main/vtxfmt.c
> @@ -45,57 +45,64 @@
> * API dispatch table.
> */
> static void
> -install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt )
> +install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
> + const GLvertexformat *vfmt)
> {
> _mesa_install_arrayelt_vtxfmt(tab, vfmt);
>
> - SET_Color3f(tab, vfmt->Color3f);
> - SET_Color3fv(tab, vfmt->Color3fv);
> - SET_Color4f(tab, vfmt->Color4f);
> - SET_Color4fv(tab, vfmt->Color4fv);
> - SET_EdgeFlag(tab, vfmt->EdgeFlag);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Color3f(tab, vfmt->Color3f);
> + SET_Color3fv(tab, vfmt->Color3fv);
> + SET_Color4f(tab, vfmt->Color4f);
> + SET_Color4fv(tab, vfmt->Color4fv);
> + SET_EdgeFlag(tab, vfmt->EdgeFlag);
> + }
>
> _mesa_install_eval_vtxfmt(tab, vfmt);
>
> - SET_FogCoordfEXT(tab, vfmt->FogCoordfEXT);
> - SET_FogCoordfvEXT(tab, vfmt->FogCoordfvEXT);
> - SET_Indexf(tab, vfmt->Indexf);
> - SET_Indexfv(tab, vfmt->Indexfv);
> - SET_Materialfv(tab, vfmt->Materialfv);
> - SET_MultiTexCoord1fARB(tab, vfmt->MultiTexCoord1fARB);
> - SET_MultiTexCoord1fvARB(tab, vfmt->MultiTexCoord1fvARB);
> - SET_MultiTexCoord2fARB(tab, vfmt->MultiTexCoord2fARB);
> - SET_MultiTexCoord2fvARB(tab, vfmt->MultiTexCoord2fvARB);
> - SET_MultiTexCoord3fARB(tab, vfmt->MultiTexCoord3fARB);
> - SET_MultiTexCoord3fvARB(tab, vfmt->MultiTexCoord3fvARB);
> - SET_MultiTexCoord4fARB(tab, vfmt->MultiTexCoord4fARB);
> - SET_MultiTexCoord4fvARB(tab, vfmt->MultiTexCoord4fvARB);
> - SET_Normal3f(tab, vfmt->Normal3f);
> - SET_Normal3fv(tab, vfmt->Normal3fv);
> - SET_SecondaryColor3fEXT(tab, vfmt->SecondaryColor3fEXT);
> - SET_SecondaryColor3fvEXT(tab, vfmt->SecondaryColor3fvEXT);
> - SET_TexCoord1f(tab, vfmt->TexCoord1f);
> - SET_TexCoord1fv(tab, vfmt->TexCoord1fv);
> - SET_TexCoord2f(tab, vfmt->TexCoord2f);
> - SET_TexCoord2fv(tab, vfmt->TexCoord2fv);
> - SET_TexCoord3f(tab, vfmt->TexCoord3f);
> - SET_TexCoord3fv(tab, vfmt->TexCoord3fv);
> - SET_TexCoord4f(tab, vfmt->TexCoord4f);
> - SET_TexCoord4fv(tab, vfmt->TexCoord4fv);
> - SET_Vertex2f(tab, vfmt->Vertex2f);
> - SET_Vertex2fv(tab, vfmt->Vertex2fv);
> - SET_Vertex3f(tab, vfmt->Vertex3f);
> - SET_Vertex3fv(tab, vfmt->Vertex3fv);
> - SET_Vertex4f(tab, vfmt->Vertex4f);
> - SET_Vertex4fv(tab, vfmt->Vertex4fv);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_FogCoordfEXT(tab, vfmt->FogCoordfEXT);
> + SET_FogCoordfvEXT(tab, vfmt->FogCoordfvEXT);
> + SET_Indexf(tab, vfmt->Indexf);
> + SET_Indexfv(tab, vfmt->Indexfv);
> + SET_Materialfv(tab, vfmt->Materialfv);
> + SET_MultiTexCoord1fARB(tab, vfmt->MultiTexCoord1fARB);
> + SET_MultiTexCoord1fvARB(tab, vfmt->MultiTexCoord1fvARB);
> + SET_MultiTexCoord2fARB(tab, vfmt->MultiTexCoord2fARB);
> + SET_MultiTexCoord2fvARB(tab, vfmt->MultiTexCoord2fvARB);
> + SET_MultiTexCoord3fARB(tab, vfmt->MultiTexCoord3fARB);
> + SET_MultiTexCoord3fvARB(tab, vfmt->MultiTexCoord3fvARB);
> + SET_MultiTexCoord4fARB(tab, vfmt->MultiTexCoord4fARB);
> + SET_MultiTexCoord4fvARB(tab, vfmt->MultiTexCoord4fvARB);
> + SET_Normal3f(tab, vfmt->Normal3f);
> + SET_Normal3fv(tab, vfmt->Normal3fv);
> + SET_SecondaryColor3fEXT(tab, vfmt->SecondaryColor3fEXT);
> + SET_SecondaryColor3fvEXT(tab, vfmt->SecondaryColor3fvEXT);
> + SET_TexCoord1f(tab, vfmt->TexCoord1f);
> + SET_TexCoord1fv(tab, vfmt->TexCoord1fv);
> + SET_TexCoord2f(tab, vfmt->TexCoord2f);
> + SET_TexCoord2fv(tab, vfmt->TexCoord2fv);
> + SET_TexCoord3f(tab, vfmt->TexCoord3f);
> + SET_TexCoord3fv(tab, vfmt->TexCoord3fv);
> + SET_TexCoord4f(tab, vfmt->TexCoord4f);
> + SET_TexCoord4fv(tab, vfmt->TexCoord4fv);
> + SET_Vertex2f(tab, vfmt->Vertex2f);
> + SET_Vertex2fv(tab, vfmt->Vertex2fv);
> + SET_Vertex3f(tab, vfmt->Vertex3f);
> + SET_Vertex3fv(tab, vfmt->Vertex3fv);
> + SET_Vertex4f(tab, vfmt->Vertex4f);
> + SET_Vertex4fv(tab, vfmt->Vertex4fv);
> + }
>
> _mesa_install_dlist_vtxfmt(tab, vfmt); /* glCallList / glCallLists */
>
> - SET_Begin(tab, vfmt->Begin);
> - SET_End(tab, vfmt->End);
> - SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV);
> + if (ctx->API != API_OPENGL_CORE) {
> + SET_Begin(tab, vfmt->Begin);
> + SET_End(tab, vfmt->End);
> + SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV);
>
> - SET_Rectf(tab, vfmt->Rectf);
> + SET_Rectf(tab, vfmt->Rectf);
> + }
>
> SET_DrawArrays(tab, vfmt->DrawArrays);
> SET_DrawElements(tab, vfmt->DrawElements);
> @@ -154,42 +161,44 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt )
> SET_VertexAttribI3uivEXT(tab, vfmt->VertexAttribI3uiv);
> SET_VertexAttribI4uivEXT(tab, vfmt->VertexAttribI4uiv);
>
> - /* GL_ARB_vertex_type_10_10_10_2_rev / GL 3.3 */
> - SET_VertexP2ui(tab, vfmt->VertexP2ui);
> - SET_VertexP2uiv(tab, vfmt->VertexP2uiv);
> - SET_VertexP3ui(tab, vfmt->VertexP3ui);
> - SET_VertexP3uiv(tab, vfmt->VertexP3uiv);
> - SET_VertexP4ui(tab, vfmt->VertexP4ui);
> - SET_VertexP4uiv(tab, vfmt->VertexP4uiv);
> -
> - SET_TexCoordP1ui(tab, vfmt->TexCoordP1ui);
> - SET_TexCoordP1uiv(tab, vfmt->TexCoordP1uiv);
> - SET_TexCoordP2ui(tab, vfmt->TexCoordP2ui);
> - SET_TexCoordP2uiv(tab, vfmt->TexCoordP2uiv);
> - SET_TexCoordP3ui(tab, vfmt->TexCoordP3ui);
> - SET_TexCoordP3uiv(tab, vfmt->TexCoordP3uiv);
> - SET_TexCoordP4ui(tab, vfmt->TexCoordP4ui);
> - SET_TexCoordP4uiv(tab, vfmt->TexCoordP4uiv);
> -
> - SET_MultiTexCoordP1ui(tab, vfmt->MultiTexCoordP1ui);
> - SET_MultiTexCoordP2ui(tab, vfmt->MultiTexCoordP2ui);
> - SET_MultiTexCoordP3ui(tab, vfmt->MultiTexCoordP3ui);
> - SET_MultiTexCoordP4ui(tab, vfmt->MultiTexCoordP4ui);
> - SET_MultiTexCoordP1uiv(tab, vfmt->MultiTexCoordP1uiv);
> - SET_MultiTexCoordP2uiv(tab, vfmt->MultiTexCoordP2uiv);
> - SET_MultiTexCoordP3uiv(tab, vfmt->MultiTexCoordP3uiv);
> - SET_MultiTexCoordP4uiv(tab, vfmt->MultiTexCoordP4uiv);
> -
> - SET_NormalP3ui(tab, vfmt->NormalP3ui);
> - SET_NormalP3uiv(tab, vfmt->NormalP3uiv);
> -
> - SET_ColorP3ui(tab, vfmt->ColorP3ui);
> - SET_ColorP4ui(tab, vfmt->ColorP4ui);
> - SET_ColorP3uiv(tab, vfmt->ColorP3uiv);
> - SET_ColorP4uiv(tab, vfmt->ColorP4uiv);
> -
> - SET_SecondaryColorP3ui(tab, vfmt->SecondaryColorP3ui);
> - SET_SecondaryColorP3uiv(tab, vfmt->SecondaryColorP3uiv);
> + if (ctx->API != API_OPENGL_CORE) {
> + /* GL_ARB_vertex_type_10_10_10_2_rev / GL 3.3 */
> + SET_VertexP2ui(tab, vfmt->VertexP2ui);
> + SET_VertexP2uiv(tab, vfmt->VertexP2uiv);
> + SET_VertexP3ui(tab, vfmt->VertexP3ui);
> + SET_VertexP3uiv(tab, vfmt->VertexP3uiv);
> + SET_VertexP4ui(tab, vfmt->VertexP4ui);
> + SET_VertexP4uiv(tab, vfmt->VertexP4uiv);
> +
> + SET_TexCoordP1ui(tab, vfmt->TexCoordP1ui);
> + SET_TexCoordP1uiv(tab, vfmt->TexCoordP1uiv);
> + SET_TexCoordP2ui(tab, vfmt->TexCoordP2ui);
> + SET_TexCoordP2uiv(tab, vfmt->TexCoordP2uiv);
> + SET_TexCoordP3ui(tab, vfmt->TexCoordP3ui);
> + SET_TexCoordP3uiv(tab, vfmt->TexCoordP3uiv);
> + SET_TexCoordP4ui(tab, vfmt->TexCoordP4ui);
> + SET_TexCoordP4uiv(tab, vfmt->TexCoordP4uiv);
> +
> + SET_MultiTexCoordP1ui(tab, vfmt->MultiTexCoordP1ui);
> + SET_MultiTexCoordP2ui(tab, vfmt->MultiTexCoordP2ui);
> + SET_MultiTexCoordP3ui(tab, vfmt->MultiTexCoordP3ui);
> + SET_MultiTexCoordP4ui(tab, vfmt->MultiTexCoordP4ui);
> + SET_MultiTexCoordP1uiv(tab, vfmt->MultiTexCoordP1uiv);
> + SET_MultiTexCoordP2uiv(tab, vfmt->MultiTexCoordP2uiv);
> + SET_MultiTexCoordP3uiv(tab, vfmt->MultiTexCoordP3uiv);
> + SET_MultiTexCoordP4uiv(tab, vfmt->MultiTexCoordP4uiv);
> +
> + SET_NormalP3ui(tab, vfmt->NormalP3ui);
> + SET_NormalP3uiv(tab, vfmt->NormalP3uiv);
> +
> + SET_ColorP3ui(tab, vfmt->ColorP3ui);
> + SET_ColorP4ui(tab, vfmt->ColorP4ui);
> + SET_ColorP3uiv(tab, vfmt->ColorP3uiv);
> + SET_ColorP4uiv(tab, vfmt->ColorP4uiv);
> +
> + SET_SecondaryColorP3ui(tab, vfmt->SecondaryColorP3ui);
> + SET_SecondaryColorP3uiv(tab, vfmt->SecondaryColorP3uiv);
> + }
>
> SET_VertexAttribP1ui(tab, vfmt->VertexAttribP1ui);
> SET_VertexAttribP2ui(tab, vfmt->VertexAttribP2ui);
> @@ -210,7 +219,7 @@ void
> _mesa_install_exec_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt)
> {
> if (_mesa_is_desktop_gl(ctx))
> - install_vtxfmt( ctx->Exec, vfmt );
> + install_vtxfmt( ctx, ctx->Exec, vfmt );
> }
>
>
> @@ -222,7 +231,7 @@ void
> _mesa_install_save_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt)
> {
> if (_mesa_is_desktop_gl(ctx))
> - install_vtxfmt( ctx->Save, vfmt );
> + install_vtxfmt( ctx, ctx->Save, vfmt );
> }
>
>
> --
> 1.7.9.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list