diff options
author | Paul Berry <[email protected]> | 2012-10-19 06:31:49 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2012-11-01 11:25:27 -0700 |
commit | a21116f87e44aabb6cb1f040dd557eac98144dd8 (patch) | |
tree | 39467657e0473af5ce2834be0375e06c2efeac67 /src/mesa/main/api_exec.c | |
parent | 5a1b40acf50955d727b15dc70703a19115bb3552 (diff) |
dispatch: GLES1 fixes for _mesa_create_exec_table().
Currently, _mesa_create_exec_table() (in api_exec.c) is used for all
APIs except GLES1. In GLES1, _mesa_create_exec_table_es1() (a code
generated function) is used instead.
In principle, this shouldn't be necessary. It should be possible for
api_exec.c to contain the logic for populating the dispatch table for
all API's.
This patch paves the way for using _mesa_create_exec_table() instead
of _mesa_create_exec_table_es1(), by making _mesa_create_exec_table()
(and the functions it calls) expose the correct subset of desktop GL
functions for GLES1.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/main/api_exec.c')
-rw-r--r-- | src/mesa/main/api_exec.c | 255 |
1 files changed, 180 insertions, 75 deletions
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index a670fba43ef..2d8d82a3f93 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -49,9 +49,11 @@ #include "depth.h" #include "dlist.h" #include "drawpix.h" +#include "drawtex.h" #include "rastpos.h" #include "enable.h" #include "errors.h" +#include "es1_conversion.h" #include "eval.h" #include "get.h" #include "feedback.h" @@ -69,6 +71,7 @@ #include "pixelstore.h" #include "points.h" #include "polygon.h" +#include "querymatrix.h" #include "queryobj.h" #include "readpix.h" #include "samplerobj.h" @@ -128,12 +131,14 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_Disable(exec, _mesa_Disable); if (ctx->API == API_OPENGL || ctx->API == API_OPENGL_CORE) SET_DrawBuffer(exec, _mesa_DrawBuffer); - SET_ReadBuffer(exec, _mesa_ReadBuffer); + if (ctx->API != API_OPENGLES) { + SET_ReadBuffer(exec, _mesa_ReadBuffer); + } SET_Enable(exec, _mesa_Enable); SET_Finish(exec, _mesa_Finish); SET_Flush(exec, _mesa_Flush); SET_FrontFace(exec, _mesa_FrontFace); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { + if (ctx->API == API_OPENGL) { SET_Frustum(exec, _mesa_Frustum); } SET_GetError(exec, _mesa_GetError); @@ -153,6 +158,8 @@ _mesa_create_exec_table(struct gl_context *ctx) if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { SET_MatrixMode(exec, _mesa_MatrixMode); SET_MultMatrixf(exec, _mesa_MultMatrixf); + } + if (ctx->API == API_OPENGL) { SET_Ortho(exec, _mesa_Ortho); } SET_PixelStorei(exec, _mesa_PixelStorei); @@ -185,7 +192,7 @@ _mesa_create_exec_table(struct gl_context *ctx) _mesa_init_dlist_dispatch(exec); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_ClearDepth(exec, _mesa_ClearDepth); } @@ -197,11 +204,11 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_DepthFunc(exec, _mesa_DepthFunc); SET_DepthMask(exec, _mesa_DepthMask); - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_DepthRange(exec, _mesa_DepthRange); } - if (ctx->API != API_OPENGLES2 && ctx->API != API_OPENGL_CORE) { + if (ctx->API == API_OPENGL) { _mesa_init_drawpix_dispatch(exec); } if (ctx->API == API_OPENGL) { @@ -210,33 +217,37 @@ _mesa_create_exec_table(struct gl_context *ctx) if (ctx->API == API_OPENGL) { 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 || ctx->API == API_OPENGLES) { + SET_Fogf(exec, _mesa_Fogf); + SET_Fogfv(exec, _mesa_Fogfv); + } SET_GetBooleanv(exec, _mesa_GetBooleanv); - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_GetDoublev(exec, _mesa_GetDoublev); } SET_GetIntegerv(exec, _mesa_GetIntegerv); if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { 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_OPENGLES2) { + if (ctx->API == API_OPENGL) { + SET_GetLightiv(exec, _mesa_GetLightiv); + SET_GetMaterialiv(exec, _mesa_GetMaterialiv); + SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple); + } + if (_mesa_is_desktop_gl(ctx)) { SET_GetTexLevelParameterfv(exec, _mesa_GetTexLevelParameterfv); SET_GetTexLevelParameteriv(exec, _mesa_GetTexLevelParameteriv); } SET_GetTexParameterfv(exec, _mesa_GetTexParameterfv); SET_GetTexParameteriv(exec, _mesa_GetTexParameteriv); - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_GetTexImage(exec, _mesa_GetTexImage); } SET_Hint(exec, _mesa_Hint); @@ -247,10 +258,12 @@ _mesa_create_exec_table(struct gl_context *ctx) if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { 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); + } + if (ctx->API == API_OPENGL) { + SET_LightModeli(exec, _mesa_LightModeli); + SET_LightModeliv(exec, _mesa_LightModeliv); SET_Lighti(exec, _mesa_Lighti); SET_Lightiv(exec, _mesa_Lightiv); SET_LoadMatrixd(exec, _mesa_LoadMatrixd); @@ -263,10 +276,11 @@ _mesa_create_exec_table(struct gl_context *ctx) } if (ctx->API != API_OPENGLES2) { - SET_PixelStoref(exec, _mesa_PixelStoref); - SET_PointSize(exec, _mesa_PointSize); + } + if (_mesa_is_desktop_gl(ctx)) { + SET_PixelStoref(exec, _mesa_PixelStoref); SET_PolygonMode(exec, _mesa_PolygonMode); } @@ -278,19 +292,21 @@ _mesa_create_exec_table(struct gl_context *ctx) } SET_ReadPixels(exec, _mesa_ReadPixels); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { + if (ctx->API == API_OPENGL) { SET_Rotated(exec, _mesa_Rotated); SET_Scaled(exec, _mesa_Scaled); SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT); + } + if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { SET_TexEnvf(exec, _mesa_TexEnvf); SET_TexEnviv(exec, _mesa_TexEnviv); } if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - _mesa_init_texgen_dispatch(exec); + _mesa_init_texgen_dispatch(ctx, exec); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_TexImage1D(exec, _mesa_TexImage1D); } SET_TexParameterf(exec, _mesa_TexParameterf); @@ -306,9 +322,11 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_GenTextures(exec, _mesa_GenTextures); if (ctx->API == API_OPENGL) { SET_AreTexturesResident(exec, _mesa_AreTexturesResident); + } + if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { SET_ColorPointer(exec, _mesa_ColorPointer); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_CopyTexImage1D(exec, _mesa_CopyTexImage1D); SET_CopyTexSubImage1D(exec, _mesa_CopyTexSubImage1D); SET_TexSubImage1D(exec, _mesa_TexSubImage1D); @@ -320,8 +338,10 @@ _mesa_create_exec_table(struct gl_context *ctx) if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { SET_DisableClientState(exec, _mesa_DisableClientState); - SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); SET_EnableClientState(exec, _mesa_EnableClientState); + } + if (ctx->API == API_OPENGL) { + SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); SET_IndexPointer(exec, _mesa_IndexPointer); SET_InterleavedArrays(exec, _mesa_InterleavedArrays); } @@ -331,18 +351,24 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_IsTexture(exec, _mesa_IsTexture); if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { SET_NormalPointer(exec, _mesa_NormalPointer); - SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); SET_TexCoordPointer(exec, _mesa_TexCoordPointer); SET_VertexPointer(exec, _mesa_VertexPointer); } + if (ctx->API == API_OPENGL) { + SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); + } /* 1.2 */ - SET_CopyTexSubImage3D(exec, _mesa_CopyTexSubImage3D); - SET_TexImage3D(exec, _mesa_TexImage3D); - SET_TexSubImage3D(exec, _mesa_TexSubImage3D); + if (ctx->API != API_OPENGLES) { + SET_CopyTexSubImage3D(exec, _mesa_CopyTexSubImage3D); + SET_TexImage3D(exec, _mesa_TexImage3D); + SET_TexSubImage3D(exec, _mesa_TexSubImage3D); + } /* OpenGL 1.2 GL_ARB_imaging */ - SET_BlendColor(exec, _mesa_BlendColor); + if (ctx->API != API_OPENGLES) { + SET_BlendColor(exec, _mesa_BlendColor); + } SET_BlendEquation(exec, _mesa_BlendEquation); SET_BlendEquationSeparateEXT(exec, _mesa_BlendEquationSeparateEXT); @@ -353,9 +379,11 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* OpenGL 2.0 */ - SET_StencilFuncSeparate(exec, _mesa_StencilFuncSeparate); - SET_StencilMaskSeparate(exec, _mesa_StencilMaskSeparate); - SET_StencilOpSeparate(exec, _mesa_StencilOpSeparate); + if (ctx->API != API_OPENGLES) { + SET_StencilFuncSeparate(exec, _mesa_StencilFuncSeparate); + SET_StencilMaskSeparate(exec, _mesa_StencilMaskSeparate); + SET_StencilOpSeparate(exec, _mesa_StencilOpSeparate); + } _mesa_init_shader_dispatch(ctx, exec); _mesa_init_shader_uniform_dispatch(ctx, exec); @@ -446,7 +474,7 @@ _mesa_create_exec_table(struct gl_context *ctx) /* part of _mesa_init_rastpos_dispatch(exec); */ /* 200. GL_IBM_multimode_draw_arrays */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_MultiModeDrawArraysIBM(exec, _mesa_MultiModeDrawArraysIBM); SET_MultiModeDrawElementsIBM(exec, _mesa_MultiModeDrawElementsIBM); } @@ -466,8 +494,10 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_GenVertexArraysAPPLE(exec, _mesa_GenVertexArraysAPPLE); } /* Reused by ARB_vertex_array_object / OES_vertex_array_object */ - SET_DeleteVertexArraysAPPLE(exec, _mesa_DeleteVertexArraysAPPLE); - SET_IsVertexArrayAPPLE(exec, _mesa_IsVertexArrayAPPLE); + if (ctx->API != API_OPENGLES) { + SET_DeleteVertexArraysAPPLE(exec, _mesa_DeleteVertexArraysAPPLE); + SET_IsVertexArrayAPPLE(exec, _mesa_IsVertexArrayAPPLE); + } /* 262. GL_NV_point_sprite */ if (_mesa_is_desktop_gl(ctx)) { @@ -481,23 +511,23 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* 285. GL_NV_primitive_restart */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_PrimitiveRestartIndexNV(exec, _mesa_PrimitiveRestartIndex); } /* ???. GL_EXT_depth_bounds_test */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT); } /* 352. GL_EXT_transform_feedback */ /* ARB 93. GL_ARB_transform_feedback2 */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { _mesa_init_transform_feedback_dispatch(ctx, exec); } /* 364. GL_EXT_provoking_vertex */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_ProvokingVertexEXT(exec, _mesa_ProvokingVertexEXT); } @@ -519,19 +549,23 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_SampleCoverageARB(exec, _mesa_SampleCoverageARB); /* ARB 12. GL_ARB_texture_compression */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_CompressedTexImage1DARB(exec, _mesa_CompressedTexImage1DARB); SET_CompressedTexSubImage1DARB(exec, _mesa_CompressedTexSubImage1DARB); SET_GetCompressedTexImageARB(exec, _mesa_GetCompressedTexImageARB); } - SET_CompressedTexImage3DARB(exec, _mesa_CompressedTexImage3DARB); + if (ctx->API != API_OPENGLES) { + SET_CompressedTexImage3DARB(exec, _mesa_CompressedTexImage3DARB); + } SET_CompressedTexImage2DARB(exec, _mesa_CompressedTexImage2DARB); - SET_CompressedTexSubImage3DARB(exec, _mesa_CompressedTexSubImage3DARB); + if (ctx->API != API_OPENGLES) { + SET_CompressedTexSubImage3DARB(exec, _mesa_CompressedTexSubImage3DARB); + } SET_CompressedTexSubImage2DARB(exec, _mesa_CompressedTexSubImage2DARB); /* ARB 104. GL_ARB_robustness */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_GetnCompressedTexImageARB(exec, _mesa_GetnCompressedTexImageARB); } @@ -576,10 +610,12 @@ _mesa_create_exec_table(struct gl_context *ctx) /* glVertexAttrib4NivARB handled in api_loopback.c */ /* glVertexAttrib4NusvARB handled in api_loopback.c */ /* glVertexAttrib4NuivARB handled in api_loopback.c */ - SET_VertexAttribPointerARB(exec, _mesa_VertexAttribPointerARB); - SET_EnableVertexAttribArrayARB(exec, _mesa_EnableVertexAttribArrayARB); - SET_DisableVertexAttribArrayARB(exec, _mesa_DisableVertexAttribArrayARB); - if (ctx->API != API_OPENGLES2) { + if (ctx->API != API_OPENGLES) { + SET_VertexAttribPointerARB(exec, _mesa_VertexAttribPointerARB); + SET_EnableVertexAttribArrayARB(exec, _mesa_EnableVertexAttribArrayARB); + SET_DisableVertexAttribArrayARB(exec, _mesa_DisableVertexAttribArrayARB); + } + if (_mesa_is_desktop_gl(ctx)) { /* glBindProgramARB aliases glBindProgramNV */ /* glDeleteProgramsARB aliases glDeleteProgramsNV */ /* glGenProgramsARB aliases glGenProgramsNV */ @@ -590,9 +626,11 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_ProgramStringARB(exec, _mesa_ProgramStringARB); } - SET_GetVertexAttribfvARB(exec, _mesa_GetVertexAttribfvARB); - SET_GetVertexAttribivARB(exec, _mesa_GetVertexAttribivARB); - SET_GetVertexAttribPointervNV(exec, _mesa_GetVertexAttribPointervARB); + if (ctx->API != API_OPENGLES) { + SET_GetVertexAttribfvARB(exec, _mesa_GetVertexAttribfvARB); + SET_GetVertexAttribivARB(exec, _mesa_GetVertexAttribivARB); + SET_GetVertexAttribPointervNV(exec, _mesa_GetVertexAttribPointervARB); + } if (ctx->API == API_OPENGL) { SET_ProgramEnvParameter4dARB(exec, _mesa_ProgramEnvParameter4dARB); SET_ProgramEnvParameter4dvARB(exec, _mesa_ProgramEnvParameter4dvARB); @@ -614,25 +652,27 @@ _mesa_create_exec_table(struct gl_context *ctx) _mesa_init_bufferobj_dispatch(ctx, exec); /* ARB 29. GL_ARB_occlusion_query */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { _mesa_init_queryobj_dispatch(ctx, exec); } /* ARB 37. GL_ARB_draw_buffers */ - SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB); + if (ctx->API != API_OPENGLES) { + SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB); + } /* ARB 66. GL_ARB_sync */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { _mesa_init_sync_dispatch(exec); } /* ARB 104. GL_ARB_debug_output */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { _mesa_init_errors_dispatch(exec); } /* ARB 105. GL_ARB_robustness */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_GetGraphicsResetStatusARB(exec, _mesa_GetGraphicsResetStatusARB); SET_GetnPolygonStippleARB(exec, _mesa_GetnPolygonStippleARB); SET_GetnTexImageARB(exec, _mesa_GetnTexImageARB); @@ -663,16 +703,18 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_DeleteFramebuffersEXT(exec, _mesa_DeleteFramebuffersEXT); SET_GenFramebuffersEXT(exec, _mesa_GenFramebuffersEXT); SET_CheckFramebufferStatusEXT(exec, _mesa_CheckFramebufferStatusEXT); - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_FramebufferTexture1DEXT(exec, _mesa_FramebufferTexture1DEXT); } SET_FramebufferTexture2DEXT(exec, _mesa_FramebufferTexture2DEXT); - SET_FramebufferTexture3DEXT(exec, _mesa_FramebufferTexture3DEXT); + if (ctx->API != API_OPENGLES) { + SET_FramebufferTexture3DEXT(exec, _mesa_FramebufferTexture3DEXT); + } SET_FramebufferRenderbufferEXT(exec, _mesa_FramebufferRenderbufferEXT); SET_GetFramebufferAttachmentParameterivEXT(exec, _mesa_GetFramebufferAttachmentParameterivEXT); SET_GenerateMipmapEXT(exec, _mesa_GenerateMipmapEXT); - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_BlitFramebufferEXT(exec, _mesa_BlitFramebufferEXT); } @@ -683,19 +725,19 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* GL_MESA_texture_array / GL_EXT_texture_array */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_FramebufferTextureLayerEXT(exec, _mesa_FramebufferTextureLayerEXT); } /* GL_ATI_separate_stencil */ - if (ctx->API == API_OPENGL) { + if (_mesa_is_desktop_gl(ctx)) { SET_StencilFuncSeparateATI(exec, _mesa_StencilFuncSeparateATI); } /* The ARB_fbo functions are the union of * GL_EXT_fbo, GL_EXT_framebuffer_blit, GL_EXT_texture_array */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_RenderbufferStorageMultisample(exec, _mesa_RenderbufferStorageMultisample); } @@ -704,13 +746,15 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_FlushMappedBufferRange(exec, _mesa_FlushMappedBufferRange); /* GL_ARB_copy_buffer */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_CopyBufferSubData(exec, _mesa_CopyBufferSubData); } /* GL_ARB_vertex_array_object / GL_OES_vertex_array_object */ - SET_BindVertexArray(exec, _mesa_BindVertexArray); - SET_GenVertexArrays(exec, _mesa_GenVertexArrays); + if (ctx->API != API_OPENGLES) { + SET_BindVertexArray(exec, _mesa_BindVertexArray); + SET_GenVertexArrays(exec, _mesa_GenVertexArrays); + } /* GL_EXT_draw_buffers2 */ if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { @@ -725,7 +769,7 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* GL_NV_conditional_render */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_BeginConditionalRenderNV(exec, _mesa_BeginConditionalRender); SET_EndConditionalRenderNV(exec, _mesa_EndConditionalRender); } @@ -733,18 +777,18 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_EGLImageTargetTexture2DOES(exec, _mesa_EGLImageTargetTexture2DOES); SET_EGLImageTargetRenderbufferStorageOES(exec, _mesa_EGLImageTargetRenderbufferStorageOES); - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_ObjectPurgeableAPPLE(exec, _mesa_ObjectPurgeableAPPLE); SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE); SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_FramebufferTextureARB(exec, _mesa_FramebufferTextureARB); SET_FramebufferTextureFaceARB(exec, _mesa_FramebufferTextureFaceARB); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_ClampColorARB(exec, _mesa_ClampColorARB); } @@ -753,7 +797,7 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_ClearColorIiEXT(exec, _mesa_ClearColorIiEXT); SET_ClearColorIuiEXT(exec, _mesa_ClearColorIuiEXT); } - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_GetTexParameterIivEXT(exec, _mesa_GetTexParameterIiv); SET_GetTexParameterIuivEXT(exec, _mesa_GetTexParameterIuiv); SET_TexParameterIivEXT(exec, _mesa_TexParameterIiv); @@ -761,14 +805,14 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* GL_EXT_gpu_shader4 / OpenGL 3.0 */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_GetVertexAttribIivEXT(exec, _mesa_GetVertexAttribIiv); SET_GetVertexAttribIuivEXT(exec, _mesa_GetVertexAttribIuiv); SET_VertexAttribIPointerEXT(exec, _mesa_VertexAttribIPointer); } /* GL 3.0 (functions not covered by other extensions) */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_ClearBufferiv(exec, _mesa_ClearBufferiv); SET_ClearBufferuiv(exec, _mesa_ClearBufferuiv); SET_ClearBufferfv(exec, _mesa_ClearBufferfv); @@ -777,12 +821,12 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* GL_ARB_instanced_arrays */ - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { SET_VertexAttribDivisorARB(exec, _mesa_VertexAttribDivisor); } /* GL_ARB_draw_buffer_blend */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_BlendFunciARB(exec, _mesa_BlendFunci); SET_BlendFuncSeparateiARB(exec, _mesa_BlendFuncSeparatei); SET_BlendEquationiARB(exec, _mesa_BlendEquationi); @@ -790,17 +834,17 @@ _mesa_create_exec_table(struct gl_context *ctx) } /* GL_NV_texture_barrier */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_TextureBarrierNV(exec, _mesa_TextureBarrierNV); } /* GL_ARB_texture_buffer_object */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_TexBufferARB(exec, _mesa_TexBuffer); } /* GL_ARB_texture_storage */ - if (ctx->API != API_OPENGLES2) { + if (_mesa_is_desktop_gl(ctx)) { SET_TexStorage1D(exec, _mesa_TexStorage1D); SET_TextureStorage1DEXT(exec, _mesa_TextureStorage1DEXT); } @@ -813,7 +857,7 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_TextureStorage3DEXT(exec, _mesa_TextureStorage3DEXT); } - if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) { + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { _mesa_init_sampler_object_dispatch(ctx, exec); } @@ -827,5 +871,66 @@ _mesa_create_exec_table(struct gl_context *ctx) SET_InvalidateFramebuffer(exec, _mesa_InvalidateFramebuffer); } +#if FEATURE_ES1 + if (ctx->API == API_OPENGLES) { + SET_AlphaFuncxOES(exec, _es_AlphaFuncx); + SET_ClearColorxOES(exec, _es_ClearColorx); + SET_ClearDepthxOES(exec, _es_ClearDepthx); + SET_ClipPlanefOES(exec, _es_ClipPlanef); + SET_ClipPlanexOES(exec, _es_ClipPlanex); + SET_Color4xOES(exec, _es_Color4x); + SET_DepthRangexOES(exec, _es_DepthRangex); + SET_DrawTexfOES(exec, _mesa_DrawTexf); + SET_DrawTexfvOES(exec, _mesa_DrawTexfv); + SET_DrawTexiOES(exec, _mesa_DrawTexi); + SET_DrawTexivOES(exec, _mesa_DrawTexiv); + SET_DrawTexsOES(exec, _mesa_DrawTexs); + SET_DrawTexsvOES(exec, _mesa_DrawTexsv); + SET_DrawTexxOES(exec, _es_DrawTexxOES); + SET_DrawTexxvOES(exec, _es_DrawTexxvOES); + SET_FogxOES(exec, _es_Fogx); + SET_FogxvOES(exec, _es_Fogxv); + SET_FrustumfOES(exec, _es_Frustumf); + SET_FrustumxOES(exec, _es_Frustumx); + SET_GetClipPlanefOES(exec, _es_GetClipPlanef); + SET_GetClipPlanexOES(exec, _es_GetClipPlanex); + SET_GetFixedvOES(exec, _mesa_GetFixedv); + SET_GetLightxvOES(exec, _es_GetLightxv); + SET_GetMaterialxvOES(exec, _es_GetMaterialxv); + SET_GetTexEnvxvOES(exec, _es_GetTexEnvxv); + SET_GetTexGenxvOES(exec, _check_GetTexGenxvOES); + SET_GetTexParameterxvOES(exec, _es_GetTexParameterxv); + SET_LightModelxOES(exec, _es_LightModelx); + SET_LightModelxvOES(exec, _es_LightModelxv); + SET_LightxOES(exec, _es_Lightx); + SET_LightxvOES(exec, _es_Lightxv); + SET_LineWidthxOES(exec, _es_LineWidthx); + SET_LoadMatrixxOES(exec, _es_LoadMatrixx); + SET_MaterialxOES(exec, _es_Materialx); + SET_MaterialxvOES(exec, _es_Materialxv); + SET_MultMatrixxOES(exec, _es_MultMatrixx); + SET_MultiTexCoord4xOES(exec, _es_MultiTexCoord4x); + SET_Normal3xOES(exec, _es_Normal3x); + SET_OrthofOES(exec, _es_Orthof); + SET_OrthoxOES(exec, _es_Orthox); + SET_PointParameterxOES(exec, _es_PointParameterx); + SET_PointParameterxvOES(exec, _es_PointParameterxv); + SET_PointSizePointerOES(exec, _mesa_PointSizePointer); + SET_PointSizexOES(exec, _es_PointSizex); + SET_PolygonOffsetxOES(exec, _es_PolygonOffsetx); + SET_QueryMatrixxOES(exec, _es_QueryMatrixxOES); + SET_RotatexOES(exec, _es_Rotatex); + SET_SampleCoveragexOES(exec, _es_SampleCoveragex); + SET_ScalexOES(exec, _es_Scalex); + SET_TexEnvxOES(exec, _es_TexEnvx); + SET_TexEnvxvOES(exec, _es_TexEnvxv); + SET_TexGenxOES(exec, _check_TexGenxOES); + SET_TexGenxvOES(exec, _check_TexGenxvOES); + SET_TexParameterxOES(exec, _es_TexParameterx); + SET_TexParameterxvOES(exec, _es_TexParameterxv); + SET_TranslatexOES(exec, _es_Translatex); + } +#endif + return exec; } |