summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/state.c
Commit message (Collapse)AuthorAgeFilesLines
* Clean-up and re-org of the main GLSL object types.Brian2006-12-191-5/+4
| | | | | | | Use the gl_shader struct as it should be. Renamed gl_linked_program to gl_shader_program. Store both shaders and programs in the same hash table and use the Type field to distinguish them.
* Overhaul of GLSL API functions, dispatching, etc.Brian2006-12-191-2/+2
|
* Lots of assorted changes for new GLSL compiler backend.Brian2006-12-151-27/+62
| | | | New datatypes, constants, variables.
* plug in 2.0, 2.1 functionsBrian Paul2006-11-031-0/+26
|
* new RGBA_LOGICOP_ENABLED() macroBrian Paul2006-11-021-3/+1
|
* Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul2006-11-021-1/+1
| | | | OpenGL 2.0 function of the same name.
* Merge texmem-0-3-branch.Keith Whitwell2006-11-011-1/+14
|
* Fix bug #4681.Ian Romanick2006-10-111-19/+1
| | | | | | | | | | | | | | | | | glDeleteTextures and glDeleteTexturesEXT were erroneously listed as aliases of each other. For anything /except/ GLX protocol they are aliases. This set of changes allows functions that are functionally identical but have different GLX protocol to be listed as aliases. When building with GLX_INDIRECT_RENDERING set, different static functions are used. These functions determine whether the current context is direct rendering or not. If the context is direct rendering, the aliased function (e.g., glDeleteTextures in the case of glDeleteTexturesEXT) is called. If the context is not direct rendering, the correct GLX protocol is sent. For a deeper explanation of what is changed, please see: http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions
* GL_EXT_paletted_texture functions should alias GL_SGI_color_table functions.Ian Romanick2006-08-241-14/+14
| | | | | | | | | | The functions for GL_EXT_paletted_texture that do not share GLX protocol with GL_ARB_imaging are supposed to alias the similar functions from GL_SGI_color_table. They didn't. This patch corrects this problem and enables GLX protocol for both extensions. Since this removes 3 entries from the dispatch table, this change creates a lot of changes in the generated files.
* added FEATURE_EXT_timer_query and testsBrian Paul2006-08-171-3/+4
|
* Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick2006-08-151-0/+6
| | | | | either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this extension as well.
* Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul2006-07-201-1/+1
| | | | "gl_" to match other structs.
* Compute ctx->Color._LogicOpEnabled in one place instead of four places!Brian Paul2006-07-181-1/+18
|
* Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick2006-06-121-38/+45
| | | | | | | and demos are also added. Adding basic support to drivers should be as easy as just enabling the extension, though thorough test would also be required.
* The ctx->_TexEnvProgram that's allocated in update_state() doesn't seem toBrian Paul2006-05-241-1/+2
| | | | | | be needed (it's set in texenvprogram.c) and is a memory leak according to valgrind. Disable with #if 0 / #endif
* Put color index attribute into the 6th attribute slot.Brian Paul2006-04-251-6/+6
| | | | | | Update a lot of loops, conditionals to use the _TNL_FIRST/LAST_* values instead of specific vertex attributes. Remove the EdgeFlagv function from the GLvertexformat struct.
* More GLSL code:Michal Krol2006-04-111-2/+15
| | | | | | | | | | | | - use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
* Move the computation of the viewport matrix into a new update_viewport_matrix()Brian Paul2006-03-291-0/+23
| | | | | | | function since the matrix depends on the viewport params and the framebuffer's depth buffer resolution. Fixes some renderbuffer / depth range issues. This simplifies the _mesa_set_viewport() and _mesa_DepthRange() functions too.
* Added glBlitFramebufferEXT function.Brian Paul2006-03-011-2/+6
|
* s/GLuint/GLbitfield/Brian Paul2006-01-091-1/+1
|
* Removed the GL_SGIX/SGIS_pixel_texture extensions. Same thing can beBrian Paul2005-12-141-15/+0
| | | | done with fragment programs nowadays.
* Split _MaintainTexEnvProgram into two flags _Maintain and _Use. ThisKeith Whitwell2005-12-121-1/+3
| | | | | restores the ability to run the software driver with program TNL but tradtional swrast.
* Updates for GL_EXT_timer_query:Brian Paul2005-12-071-0/+4
| | | | | New GLint64EXT and GLuint64EXT types (use C99's long long types). New glGetQueryObject[u]i64vEXT() functions.
* No longer derive 'ati_fragment_shader' from 'program' class. Only theBrian Paul2005-11-191-1/+1
| | | | | program->Id and program->RefCount fields were used and ATI fragment shaders didn't have too much in common with ARB/NV vertex/fragment programs anyway.
* Move stuff common to vertex/fragment_program into the base class, including:Brian Paul2005-11-121-3/+3
| | | | | | Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
* remove unneeded #includesBrian Paul2005-11-051-1/+0
|
* fix GLX server resize/crash when resizing windowsBrian Paul2005-10-211-1/+1
|
* Fix a number of point size attenuation problems.Brian Paul2005-10-071-0/+3
| | | | Move size clamping into the rasterization function.
* OpenGL 2.0's two-sided stencil feature wasn't implemented correctly.Brian Paul2005-09-131-0/+3
| | | | | See comment near top of stencil.c for info about OpenGL 2.0 vs. GL_EXT_stencil_two_side.
* Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick2005-07-181-495/+496
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use driver functions to create TexEnvProgram, TnlProgramKeith Whitwell2005-05-091-2/+7
|
* Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul2005-05-041-0/+4
| | | | | | | Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.
* Add a facility to route all rasterization through a fragment programKeith Whitwell2005-05-041-0/+13
| | | | | | | | | | | which is automatically generated to match the current texture environment state. Introduces a new value ctx->FragmentProgram._Active which is true when either _Enabled is true or there is such a fragment program ready to run. To test out on a driver running the software rasterizer, set MESA_TEX_PROG=t in the environment. It goes without saying that performance is lower for the software rasterizer in this mode.
* cosmetic changesMichal Krol2005-04-141-6/+7
|
* Rename _mesa_update_buffers() to _mesa_update_draw_buffer_bounds() and doBrian Paul2005-02-261-8/+9
| | | | | additional checks. Replace _mesa_init_buffers() with _mesa_init_scissor() and _mesa_init_multisample().
* plug in GL_EXT_framebuffer_object functionsBrian Paul2005-02-081-0/+23
|
* Some initial work for OpenGL 2.0: glStencilFunc/Op/MaskSeparate() functions.Brian Paul2005-01-121-0/+5
|
* Implement software ATI_fragment_shaderDave Airlie2004-12-191-0/+23
| | | | 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-3/+3
| | | | | | | 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-42/+1
|
* use _glapi_procBrian Paul2004-11-271-6/+3
|
* fill api entries for ARB_shader_objects and ARB_vertex_shaderMichal Krol2004-10-271-0/+50
|
* added support for GL_ARB_draw_buffersBrian Paul2004-10-021-0/+4
|
* updated error msgBrian Paul2004-09-101-2/+2
|
* Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch ↵Brian Paul2004-08-251-2/+3
| | | | 1015696)
* Add EXT_vertex_cull support to mesaKeith Whitwell2004-05-101-0/+2
|
* Added ctx->Vertex/FragmentProgram._Enable flags. Set when vertex/fragmentBrian Paul2004-04-231-17/+36
| | | | | | | 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.
* Added support for EXT_blend_equation_separate / ATI_blend_equation_separate.Ian Romanick2004-01-271-0/+1
| | | | | The internal driver interface was also changed to use BlendEquationSeparate instead of BlendEquation.
* Don't set extra bits in FLUSH_VERTICES, fix several state bugs.Keith Whitwell2004-01-231-13/+11
|
* remove _mesa_check_driver_hooks() - it's really not too useful anymoreBrian Paul2004-01-201-11/+6
|