diff options
author | Ian Romanick <[email protected]> | 2006-08-22 16:34:38 +0000 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2006-08-22 16:34:38 +0000 |
commit | 4e4b5f40081cb3e4cefe4dce30712d8d330c0774 (patch) | |
tree | 65b722305bb81a0c014903d20cf7d3715fbde83f /src/mesa/glapi/glprocs.h | |
parent | 6423ec914530a84ee16977d95b64116e63eca22c (diff) |
Add new attribute called static_dispatch to the <function> element. This
boolean attribute, which defaults to true, determines whether or not a
static dispatch function is available in libGL for applications to link
against.
Ideally, any new functions that are not part of the ABI should not have
directly accessable dispatch functions. This forces applications to use
glXGetProcAddress to access these functions. By doing this we can
gracefully remove functions from libGL without breaking the linkage of
applications.
Note that the static dispatch functions are still generated. However, they
are given names like gl_dispatch_stub_820 and are marked with the "hidden"
linker attribute.
All extension functions added since the previous Mesa release (6.5) have
been marked as 'static_dispatch="false"'.
Diffstat (limited to 'src/mesa/glapi/glprocs.h')
-rw-r--r-- | src/mesa/glapi/glprocs.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h index 3a858ca0e74..b1943c11ec3 100644 --- a/src/mesa/glapi/glprocs.h +++ b/src/mesa/glapi/glprocs.h @@ -1051,6 +1051,16 @@ static const char gl_string_table[] = "glBlendEquationSeparateATI\0" ; +/* FIXME: Having these (incorrect) prototypes here is ugly. */ +#ifdef NEED_FUNCTION_POINTER +extern void gl_dispatch_stub_819(void); +extern void gl_dispatch_stub_820(void); +extern void gl_dispatch_stub_821(void); +extern void gl_dispatch_stub_822(void); +extern void gl_dispatch_stub_823(void); +extern void gl_dispatch_stub_824(void); +#endif /* NEED_FUNCTION_POINTER */ + static const glprocs_table_t static_functions[] = { NAME_FUNC_OFFSET( 0, glNewList, _gloffset_NewList ), NAME_FUNC_OFFSET( 10, glEndList, _gloffset_EndList ), @@ -1871,12 +1881,12 @@ static const glprocs_table_t static_functions[] = { NAME_FUNC_OFFSET( 14671, glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT ), NAME_FUNC_OFFSET( 14695, glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT ), NAME_FUNC_OFFSET( 14720, glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT ), - NAME_FUNC_OFFSET( 14741, glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE ), - NAME_FUNC_OFFSET( 14764, glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE ), - NAME_FUNC_OFFSET( 14790, glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE ), - NAME_FUNC_OFFSET( 14813, glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE ), - NAME_FUNC_OFFSET( 14834, glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT ), - NAME_FUNC_OFFSET( 14863, glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT ), + NAME_FUNC_OFFSET( 14741, gl_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE ), + NAME_FUNC_OFFSET( 14764, gl_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE ), + NAME_FUNC_OFFSET( 14790, gl_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE ), + NAME_FUNC_OFFSET( 14813, gl_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE ), + NAME_FUNC_OFFSET( 14834, gl_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT ), + NAME_FUNC_OFFSET( 14863, gl_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT ), NAME_FUNC_OFFSET( 14894, glArrayElementEXT, _gloffset_ArrayElement ), NAME_FUNC_OFFSET( 14912, glBindTextureEXT, _gloffset_BindTexture ), NAME_FUNC_OFFSET( 14929, glDrawArraysEXT, _gloffset_DrawArrays ), |