summaryrefslogtreecommitdiff
path: root/src/mesa/main/dispatch.c
AgeCommit message (Collapse)Author
2005-07-18Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick
generated file, called src/mesa/glapi/dispatch.h, is added. This file contains three macros for each API function. It contains a GET, a SET, and a CALL. Each of the macros take a pointer to the context and a pointer to the dispatch table. In several threads on mesa3d-dev we discussed replacing _glapi_add_entrypoint with a new function called _glapi_add_dispatch. For this discussion, the important difference between the two is that the caller of _glapi_add_dispatch does *not* know what the dispatch offset will be at compile time. Because of this callers need to track the dispatch offset returned by _glapi_add_dispatch. http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2 The downside is that driver code then has to access the dispatch table two different ways. It accesses it using structure tags (e.g., exec->Begin) for functions with fixed offsets and via a remap table (e.g., exec[ remap->NewExtensionFunction ]) for functions without fixed offsets. Yuck! Using the macros allows both types of functions to be accessed identically. If a driver needs to set a pointer for Begin, it does 'SET_Begin(ctx, exec, my_begin_function)'. If it needs to set a pointer for NewExtensionFunction, it does 'SET_NewExtensionFunction(ctx, exec, my_NewExtensionFunction_function)'. Furthermore, if at some point in the future a static offset is assigned for NewExtensionFunction, only the macros need to change (instead of every single place that accesses a table for that function). This code differs slightly from the originally posted patches in that the CALL, GET, and SET marcos no longer take a context pointer as a parameter. Brian Paul had suggested that the remap table could be stored as a global since it would be set at CreateScreen time and would be constant for all contexts. This change reflects that feedback. http://marc.theaimsgroup.com/?t=112087194700001&r=1&w=2
2005-07-02Add support for assembly (static) dispatch functions on x86-64. ThisIan Romanick
is basically patch #2939 from X.org bugzilla #3379. This does *not* fix the bug as it does not dynamically generate stubs at run-time. It just gets things one step closer.
2005-04-07Use the same dispatch.c source file for "normal" Mesa builds and DRIIan Romanick
libGL builds.
2004-11-27use new PUBLIC macro for symbol exportBrian Paul
2004-11-27fix typo, update version/dateBrian Paul
2004-05-27Convert all calls using _glapi_Dispatch to use the new GL_CALL macro.Ian Romanick
2003-10-21Added GLAPIENTRY decorations for all first level OpenGL API function entryKendall Bennett
points so that the calling conventions will work correctly with the assembler stubs with the Open Watcom compiler.
2003-10-14Updates to x86 assembler support for Open Watcom and SNAPKendall Bennett
2003-06-05Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything.Ian Romanick
2002-10-24Header file clean-up:Brian Paul
1. Remove all.h and PC_HEADER junk. 2. Rolled mem.c and mem.h into imports.c and imports.h 3. Include imports.h instead of mem.h Restore _mesa_create/initialize_context() to be like they were in 4.0.4 New wrappers for a few std C functions: _mesa_atoi(), _mesa_strstr(), etc.
2002-06-29Applied Matt Sealey's patch to remove/isolate all stdio.h function calls.Brian Paul
Instead of mstdio.[ch], use imports.[ch] to isolate these functions.
2001-12-15better api trace/log messagesBrian Paul
2001-12-04dispatch changes to minimize hassle with XFree86 libGLBrian Paul
2001-09-14Win32 updates (Karl Schultz)Brian Paul
2001-06-05Sparc optimized GLAPI dispatch table.davem69
2001-03-28New mechanism for thread-safe GL API dispatch. C-based dispatch is faster.Brian Paul
Folded glapinoop.c code into glapi.c. Added code to glapitemp.h to fill in dispatch tables. Updated Makefiles.
2001-03-26removed DO_GEOMETRYBrian Paul
2001-03-12Consistent copyright info (version number, date) across all files.Gareth Hughes
2001-01-08Add a 'RenderPrimitive' callback to t_vb_render.c. Helps out driversKeith Whitwell
that used to require a 'ReducedPrimitiveChange' callback. Various compilation fixes for XFree86. Reverted to the older version of glcore.h used internally in XFree86, and moved it to 'Mesa/include/GL/internal/glcore.h', for compatibility with XFree86.
2001-01-02 Committing in .Jouk Jansen
Modified Files: Mesa/demos/descrip.mms Mesa/src/descrip.mms Mesa/src/dispatch.c -Updated VMS compile suppport -Included glthread.h in dispatch.c to make sure that THREADS is defined if i.e. PTHREADS is defined in the makefile. ----------------------------------------------------------------------
2000-12-26Major rework of tnl moduleKeith Whitwell
New array_cache module Support 8 texture units in core mesa (now support 8 everywhere) Rework core mesa statechange operations to avoid flushing on many noop statechanges.
2000-09-05added tracing facility from LokiBrian Paul
2000-02-02added commentsBrian Paul
2000-02-02moved exec dispatch init to state.cBrian Paul
2000-02-01patch for XFree86 buildingBrian Paul
2000-01-31changed message format, added GL_EXT_texture3dBrian Paul
2000-01-28moved entrypoints here from glapi.cBrian Paul
2000-01-18generic_noop() now returns 0Brian Paul
2000-01-13include dispatch.hBrian Paul
2000-01-07added missing glHintPGI() functionBrian Paul
2000-01-07removed cpp conditionals from _mesa_init_exec_table()Brian Paul
1999-12-10implemented GL_ARB_tranpose_matrixBrian Paul
1999-11-27move dispatch table size check into _mesa_init_no_op_table()Brian Paul
1999-11-27added _mesa_init_no_op_table()Brian Paul
1999-11-12replaced EXT_color_table with EXT_paletted_textureBrian Paul
1999-11-11ColorTableEXT clean-upBrian Paul
1999-11-11first big check-in of new Mesa 3.3 codeBrian Paul