summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/dlist.c
Commit message (Collapse)AuthorAgeFilesLines
* Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick2005-07-181-915/+917
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul2005-05-041-10/+3
| | | | | | | Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.
* mesa-main-0-NULL.patch from Jeff MuizelaarKeith Whitwell2005-02-111-1/+1
|
* Determine ahead of time whether a display list will include verticesKeith Whitwell2005-01-221-17/+43
| | | | | | which have to be processed in the 'loopback' path. If so, send all vertices that way as the transition from playback->loopback has several problems.
* Some initial work for OpenGL 2.0: glStencilFunc/Op/MaskSeparate() functions.Brian Paul2005-01-121-1/+79
|
* Implement software ATI_fragment_shaderDave Airlie2004-12-191-1/+67
| | | | no error detection, slow, may not be 100% correct but a good start
* Change the dispatch offsets for the VertexAttrib*NV functions so they don'tBrian Paul2004-11-271-76/+298
| | | | | | | alias with the corresponding ARB functions. GL_ARB_vertex_shader (and OpenGL 2.0's) VertexAttrib functions don't alias with conventional vertex attributes, as GL_NV_vertex_program does. So, the ARB and NV version of VertexAttrib need to be distinct.
* clean up code related to dispatch table initializationBrian Paul2004-11-271-3/+1
|
* GL_(UN)PACK_SKIP_IMAGES should only be applied to 3D texture pack/unpackingBrian Paul2004-11-101-16/+16
| | | | | | | and ignored for 1D and 2D images. Need to pass in image dimensions (1,2,3) to the _mesa_image_address() function. This change gets propogated to some other routines. Also added new _mesa_image_address[123]d() convenience functions.
* Bug #1682: Mesa core code that gets linked into DRI drivers should never callAdam Jackson2004-10-241-1/+1
| | | | through the GL API directly, but should instead use the GL_CALL macro.
* added support for GL_ARB_draw_buffersBrian Paul2004-10-021-0/+34
|
* remove CRDaniel Borca2004-08-301-1/+1
|
* Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch ↵Brian Paul2004-08-251-0/+1
| | | | 1015696)
* glBegin/EndQueryARB didn't work inside display listsBrian Paul2004-06-281-2/+63
|
* Fix problems when sizeof(Node) != sizeof(float)Keith Whitwell2004-06-031-5/+31
|
* Add printing for recently added opcodes.Keith Whitwell2004-04-201-0/+52
|
* in TexEnv functions, check if pname == GL_TEXTURE_ENV_COLOR and fetch ↵Brian Paul2004-04-191-14/+26
| | | | appropriate number of param values
* added some assertions, just to be safeBrian Paul2004-04-021-0/+4
|
* fix some warningsBrian Paul2004-03-261-1/+1
|
* Implementation of GL_EXT_pixel_buffer_object extension.Brian Paul2004-03-131-47/+77
| | | | | Note: extension may not be finalized yet - subject to change! Note: implementation not fully suitable for h/w implementation yet.
* plug in _mesa_BlendFunc into dispatch tableBrian Paul2004-03-041-0/+1
|
* comments, capitalization, misc-clean-upsBrian Paul2004-03-031-24/+34
|
* glBindProgramARB wasn't getting compiled into display lists (bug 887383)Brian Paul2004-01-301-3/+7
|
* Added support for EXT_blend_equation_separate / ATI_blend_equation_separate.Ian Romanick2004-01-271-0/+25
| | | | | The internal driver interface was also changed to use BlendEquationSeparate instead of BlendEquation.
* Silence a compiler warning DRI builds using gcc3.Ian Romanick2004-01-211-1/+1
|
* Remove dd_function_table::BlendFunc. All drivers now useIan Romanick2004-01-211-22/+0
| | | | | | dd_function_table:BlendFuncSeparate. If a driver does not actually support EXT_blend_func_separate, it can assume that the RGB and alpha blend functions are the same.
* change MALLOC to CALLOC to silence valgrind error in _playback_copy_to_current()Brian Paul2004-01-151-3/+3
|
* Add missing GLAPIENTRYKarl Schultz2003-12-041-54/+54
|
* casts for g++Brian Paul2003-11-251-1/+1
|
* Merge vtx-0-2-branchKeith Whitwell2003-11-241-43/+823
|
* Added GLAPIENTRY decorations for all first level OpenGL API function entryKendall Bennett2003-10-211-334/+334
| | | | | points so that the calling conventions will work correctly with the assembler stubs with the Open Watcom compiler.
* Assorted casts to silence g++ warnings.Brian Paul2003-09-191-8/+8
|
* Move macros from header to C file. Updated some commentsBrian Paul2003-09-181-26/+61
|
* Updates to fix problems building with the Open Watcom compiler.Kendall Bennett2003-09-121-15/+15
|
* display list support for ARB_vertex/fragment_programBrian Paul2003-09-091-11/+148
|
* plug in vertex buffer object functionsBrian Paul2003-09-091-0/+18
|
* Moved some shared vertex/fragment program code into new program.c file.Brian Paul2003-08-311-3/+5
| | | | | | | Implemented new program_parameter_list type and functions for dealing with named program parameters, constants and GL state references. New state_index enum for describing GL state referenced within ARB vertex/ fragment programs. Plus, functions for fetching named GL state.
* Silence compiler warnings about implicit casts or conversions by supplying ↵Karl Schultz2003-08-301-10/+10
| | | | explicit casts and/or tweaking constant and variable definitions.
* Added support for GL_IBM_multimode_draw_arrays.Ian Romanick2003-08-221-0/+27
| | | | | | | | Added non-static entrypoints and the name string for GL_SUN_multi_draw_arrays (identical to GL_EXT_multi_draw_arrays). Made add_newer_entrypoints (in src/mesa/main/context.c) table driven. This reduced the size of context.o by about 3KB.
* remove printfBrian Paul2003-07-221-2/+0
|
* Initial implementation of GL_MESA_program_debug - a vertex/fragment programBrian Paul2003-07-211-0/+1
| | | | debugging extension.
* Merge Jose's documentation and core Mesa changes from embedded branchKeith Whitwell2003-07-171-38/+64
|
* tweak checks for display list zeroBrian Paul2003-07-031-1/+6
|
* Implemented GL_EXT_depth_bounds_test.Brian Paul2003-04-211-0/+32
|
* added LoadProgramNV and RequestResidentProgramsNVBrian Paul2003-04-171-12/+70
|
* Added arbprogram.c to Makefiles.Brian Paul2003-04-171-7/+212
| | | | | Added display list support for GL_NV_fragment_program. Assorted clean-ups.
* better error messages (Leif Delgass)Brian Paul2003-03-031-3/+3
|
* GL_SGI_texture_color_table extension (Eric Plante)Brian Paul2003-01-211-3/+5
|
* First batch of code for GL_NV_fragment_program.Brian Paul2003-01-141-2/+2
| | | | | Re-org of some GL_NV_vertex_program code. Replace MAX_TEXTURE_UNITS with MAX_TEXTURE_COORD_UNITS and MAX_TEXTURE_IMAGE_UNITS.
* a few dispatch pointers weren't set (glGenTexturesEXT for example)Brian Paul2002-11-061-2/+18
|