summaryrefslogtreecommitdiff
path: root/src/mesa/tnl/t_vtx_api.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-04-28fix _tnl_copy_to_current() so that current edge flag and rasterpos aren't ↵Brian Paul
trashed by color index updates
2005-04-23Fix the worst problems with dangling edgeflag references inKeith Whitwell
display lists. These mainly arise from edgeflag being the only attribute no longer stored internally as a float and requiring various special case paths to accomodate it.
2005-03-02use COPY_CLEAN_4V macro to replace using both ASSIGN_4V & COPY_SZ_4VAlan Hourihane
2005-02-10mesa-tnl-0-to-NULL.patch from Jeff MuizelaarKeith Whitwell
2005-01-18Fix calculation of last_count in _tnl_wrap_buffers()Keith Whitwell
2004-08-25Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch ↵Brian Paul
1015696)
2004-07-01Rename the various function types in t_context.h to include a tnl_ prefix.Keith Whitwell
2004-04-23Added ctx->Vertex/FragmentProgram._Enable flags. Set when vertex/fragmentBrian Paul
program is enabled AND the currently bound program is valid. Check _Enable instead of Enable to prevent things from blowing up when someone calls glEnable(GL_VERTEX_PROGRAM_ARB) without actually defining a program.
2004-04-20Simplify last fix slightly, apply to vtx paths as well.Keith Whitwell
2004-04-16Make sure ctx->Driver.NeedFlush is set for Eval-generated attributes.Keith Whitwell
2004-04-13updated Glide driver documentationDaniel Borca
fixed SAL/SAR in assyntax.h (NASM) fixed a bug wrt NULL pointer assignment in t_vtx_api.c cosmetics to t_vtx_x86.c & t_vtx_x86_gcc.S enabled STDCALL with codegen (MinGW)
2004-04-12Missed one with the last commit.Ian Romanick
2004-04-12Conditionally compile code for x86 specific TNL codegen. This fixes problemIan Romanick
with x86-64 and PowerPC. Reported by: sublett on #dri-devel.
2004-04-05protected all codegen behind AllowCodegenDaniel Borca
2004-04-02disabled naughty cheats and protected the choosers behind AllowCodeGenDaniel Borca
2004-04-02added codegen'ed choosersDaniel Borca
2004-04-01codegen'ed versions of the 2nd level dispatchDaniel Borca
2004-03-31dynfn --> _tnl_dynfnKeith Whitwell
2004-03-29First round of codegen for t_vtx_api.c -- ie the Begin/Vertex/End code.Keith Whitwell
Enable with env var: MESA_CODEGEN=t.
2004-03-15Streamline the error path in VertexAttrib functions. Makes thingsKeith Whitwell
slightly easier for codegen.
2004-02-26check for invalid vertex/fragment program in glBeginBrian Paul
2004-01-27Catch and shortcircuit no-primitive and no-vertex cases in _tnl_wrap_buffers()Keith Whitwell
2004-01-15Cosmetic changes.Brian Paul
Added a bunch of const qualifiers. Use _mesa_memcpy() instead of memcpy(), etc.
2004-01-04Reenable the vtxfmt code paths in the radeon and r200 drivers.Felix Kuehling
2004-01-01whitespace changes and new commentsBrian Paul
2003-12-09Call UpdateMaterials when they have changedKeith Whitwell
2003-12-08 Committing in .Jouk Jansen
OpenVMS compile issues Modified Files: Mesa-newtree/progs/tests/cva.c Mesa-newtree/progs/tests/dinoshade.c Mesa-newtree/progs/tests/multipal.c Mesa-newtree/src/mesa/main/descrip.mms Mesa-newtree/src/mesa/tnl/descrip.mms Mesa-newtree/src/mesa/tnl/t_vtx_api.c ----------------------------------------------------------------------
2003-12-05include glheader.h first, to prevent warnings about GLAPIENTRYP being redefinedBrian Paul
2003-12-04Add missing GLAPIENTRYKarl Schultz
2003-12-03Ensure PRIM_BEGIN marker isn't lost when incomplete primitives are wrapped.Keith Whitwell
2003-11-25fix assorted g++ warningsBrian Paul
2003-11-25Remove unnecessary usage of __FUNCTION__.Brian Paul
#define MESA_FUNCTION to __FUNCTION__ if MESA_DEBUG is defined.
2003-11-24Merge vtx-0-2-branchKeith Whitwell
2003-08-06Newer version of this fileKeith Whitwell
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.
2002-05-11another checkpoint of struct immediate replacement codeKeith Whitwell
2002-04-18Core of the future vertex engine. Isn't built yet, nor will be for a while...Keith Whitwell
Checkpoint commit.