summaryrefslogtreecommitdiff
path: root/src/mesa/main/varray.c
AgeCommit message (Collapse)Author
2006-06-12Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick
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.
2006-04-25No longer alias generic vertex attribs with conventional attribs for ↵Brian Paul
GL_ARB_vertex_program.
2006-04-13Set array normalization flag for normals, colors (Keith)Brian Paul
2006-04-11More GLSL code:Michal Krol
- 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;
2005-11-01Re-org and clean-up of vertx/fragment program limits (instructions,Brian Paul
temporaries, parameters, etc). glGetProgramivARB() now returns all the right things. Updated i915 and r300 code to initialize program native limits and current program's native instruction/temporary/etc counts.
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
2004-09-27VBO RefCount fix (David Reveman)Brian Paul
2004-03-10don't futz with GL_CLIENT_ACTIVE_TEXTURE in glClientActiveTexture (Robert ↵Brian Paul
Merrill)
2004-03-03more changes to VBO reference counting and deletionBrian Paul
2004-02-11Do more bookkeeping of vertex buffer object reference counts.Brian Paul
Incr/decr counts when doing glPush/PopClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT).
2004-01-13init an uninitialized variable. This doesn't fix a latent bug becauseKarl Schultz
the variable was multiplied by zero.
2003-12-12remove TexCoordInterleaveFactor. Clean up _mesa_InterleavedArrays()Brian Paul
2003-12-04Fix some problems with glDrawElements and vertex buffer objects.Brian Paul
2003-10-22Initial work for bounds checking of vertex arrays and vertex buffer objects.Brian Paul
Only glDrawArrays() done so far. Simplified glVertex/Color/etcPointer functions. Misc casts added here and there.
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-09-19castsBrian Paul
2003-09-17Implement GL_ELEMENT_ARRAY_BUFFER_ARB for buffer objects.Brian Paul
2003-09-17More work on ARB_vertex_buffer_object.Brian Paul
Use GLubyte * instead of void * for gl_client_array->Ptr to simplify upcoming pointer arithmetic changes.
2003-08-22Added support for GL_IBM_multimode_draw_arrays.Ian Romanick
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.
2003-07-17Merge Jose's documentation and core Mesa changes from embedded branchKeith Whitwell
2003-06-11added missing types to _mesa_VertexAttribPointerARB()Brian Paul
2003-05-01Use ctx->Const.MaxTextureImageUnits and MaxTextureCoordUnits in more places.Brian Paul
Misc vertex array / vertex program changes.
2003-03-01Killed mmath.[ch]. Moved low-level functions/assembly code into imports.[ch]Brian Paul
Moved type conversion and interpolation macros into macros.h Updated all the files that used to include mmath.h
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-30Implemented GL_EXT_multi_draw_arrays: glMultiDrawArraysEXT() and ↵Brian Paul
glMultiDrawElementsEXT().
2002-06-15Added ctx parameter to _mesa_debug()Brian Paul
Added _mesa_printf() Updated SetDrawBuffer() function in all drivers (ala 4.0.3) Import 4.0.3/DRI changes.
2002-06-13more removal of fprintf() callsBrian Paul
2002-04-21vertex program attribute array workBrian Paul
2002-04-04repair Array.NewState flags (Michael Fitzpatrick)Brian Paul
2002-01-11Moved _mesa_VertexAttribPointerNV into varray.c.Brian Paul
Removed dead placeholder functions from vpstate.[ch]. Changed gl_client_array's Enabled field to GLuint so it can actually hold the flags we're storing in it! Always do the switch (type) code in the vertex array functions to that <type> gets error checked!
2002-01-05Vertex program checkpoint commit: converted all vertex attributes (color,Brian Paul
normal, texcoords, fogcoord, secondary color, etc) to GLfloat[4] datatype. Aliasing of glVertex, glNormal, glColor, glFogCoord, etc. to glVertexAttrib now complete.
2001-03-12Consistent copyright info (version number, date) across all files.Gareth Hughes
2001-03-07fixed a bunch of g++ warnings/errors. Compiling with g++ can help find lots ↵Brian Paul
of potential problems
2001-03-03lots of gl_*() to _mesa_*() namespace clean-upBrian Paul
2001-01-05various compilation/warning fixesKeith Whitwell
2000-12-28Add render stage for unclipped vb's to fx driver.Keith Whitwell
Bump MAX_TEXTURE_UNITS to 8 Fix mem. leak in destroy_lists Fix crash in q3 (cva generally)
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-11-24Support for swappable t&l modules, including an example one in the FXKeith Whitwell
driver (enable with FX_ALLOW_VTXFMT=t).
2000-11-22 Committing in .Jouk Jansen
Modified Files: Mesa/macos/gli_api/gliapi1.h Mesa/macos/gli_api/gliapi2.h Mesa/macos/gli_api/gliapiext.h Mesa/macos/src-gli/fxgli.c Mesa/macos/src-gli/fxgli.h Mesa/macos/src-gli/fxgli2.c Mesa/macos/src-gli/fxgli_tridebug.c Mesa/src/accum.c Mesa/src/accum.h Mesa/src/all.h Mesa/src/alpha.c Mesa/src/alpha.h Mesa/src/attrib.c Mesa/src/attrib.h Mesa/src/bitmap.c Mesa/src/bitmap.h Mesa/src/blend.c Mesa/src/blend.h Mesa/src/buffers.c Mesa/src/buffers.h Mesa/src/clip.c Mesa/src/clip.h Mesa/src/colortab.h Mesa/src/config.c Mesa/src/context.c Mesa/src/context.h Mesa/src/convolve.c Mesa/src/convolve.h Mesa/src/copypix.c Mesa/src/copypix.h Mesa/src/debug.c Mesa/src/depth.c Mesa/src/depth.h Mesa/src/dlist.c Mesa/src/dlist.h Mesa/src/drawpix.c Mesa/src/drawpix.h Mesa/src/enable.c Mesa/src/enable.h Mesa/src/eval.c Mesa/src/eval.h Mesa/src/extensions.c Mesa/src/extensions.h Mesa/src/feedback.c Mesa/src/feedback.h Mesa/src/fog.c Mesa/src/fog.h Mesa/src/get.c Mesa/src/get.h Mesa/src/glapi.c Mesa/src/glthread.h Mesa/src/highpc.c Mesa/src/hint.h Mesa/src/histogram.h Mesa/src/image.c Mesa/src/image.h Mesa/src/imports.c Mesa/src/light.c Mesa/src/light.h Mesa/src/lines.c Mesa/src/lines.h Mesa/src/logic.c Mesa/src/logic.h Mesa/src/masking.c Mesa/src/masking.h Mesa/src/matrix.c Mesa/src/matrix.h Mesa/src/pixel.c Mesa/src/pixel.h Mesa/src/points.c Mesa/src/points.h Mesa/src/polygon.c Mesa/src/polygon.h Mesa/src/rastpos.c Mesa/src/readpix.c Mesa/src/scissor.c Mesa/src/scissor.h Mesa/src/state.c Mesa/src/state.h Mesa/src/stencil.c Mesa/src/stencil.h Mesa/src/teximage.c Mesa/src/teximage.h Mesa/src/texobj.c Mesa/src/texobj.h Mesa/src/texstate.c Mesa/src/texstate.h Mesa/src/texture.c Mesa/src/texture.h Mesa/src/texutil.c Mesa/src/texutil.h Mesa/src/varray.c Mesa/src/varray.h Mesa/src/X/fakeglx.c Mesa/src/X/xm_api.c Mesa/src/X/xm_dd.c Mesa/src/X/xm_line.c Mesa/src/X/xm_span.c Mesa/src/X/xm_tri.c Mesa/src/swrast/s_aaline.c Mesa/src/swrast/s_aaline.h Mesa/src/swrast/s_aatriangle.h Mesa/src/swrast/s_accum.h Mesa/src/swrast/s_alpha.h Mesa/src/swrast/s_alphabuf.h Mesa/src/swrast/s_blend.h Mesa/src/swrast/s_context.c Mesa/src/swrast/s_context.h Mesa/src/swrast/s_depth.h Mesa/src/swrast/s_drawpix.h Mesa/src/swrast/s_feedback.h Mesa/src/swrast/s_fog.h Mesa/src/swrast/s_histogram.h Mesa/src/swrast/s_lines.h Mesa/src/swrast/s_logic.h Mesa/src/swrast/s_masking.h Mesa/src/swrast/s_pb.h Mesa/src/swrast/s_pixeltex.h Mesa/src/swrast/s_points.h Mesa/src/swrast/s_quads.c Mesa/src/swrast/s_quads.h Mesa/src/swrast/s_scissor.h Mesa/src/swrast/s_span.h Mesa/src/swrast/s_stencil.h Mesa/src/swrast/s_texture.h Mesa/src/swrast/s_triangle.h Mesa/src/swrast/s_zoom.h Mesa/src/swrast/swrast.h Mesa/src/swrast_setup/ss_context.h Mesa/src/swrast_setup/ss_triangle.c Mesa/src/swrast_setup/ss_triangle.h Mesa/src/swrast_setup/ss_vb.h Mesa/src/tnl/t_clip.c Mesa/src/tnl/t_clip.h Mesa/src/tnl/t_context.c Mesa/src/tnl/t_context.h Mesa/src/tnl/t_cva.c Mesa/src/tnl/t_cva.h Mesa/src/tnl/t_debug.c Mesa/src/tnl/t_debug.h Mesa/src/tnl/t_dlist.h Mesa/src/tnl/t_eval.c Mesa/src/tnl/t_eval.h Mesa/src/tnl/t_fog.c Mesa/src/tnl/t_fog.h Mesa/src/tnl/t_light.c Mesa/src/tnl/t_light.h Mesa/src/tnl/t_pipeline.c Mesa/src/tnl/t_pipeline.h Mesa/src/tnl/t_shade.c Mesa/src/tnl/t_shade.h Mesa/src/tnl/t_stages.c Mesa/src/tnl/t_stages.h Mesa/src/tnl/t_texture.c Mesa/src/tnl/t_texture.h Mesa/src/tnl/t_trans_elt.c Mesa/src/tnl/t_trans_elt.h Mesa/src/tnl/t_varray.c Mesa/src/tnl/t_varray.h Mesa/src/tnl/t_vb.c Mesa/src/tnl/t_vb.h Mesa/src/tnl/t_vbcull.c Mesa/src/tnl/t_vbcull.h Mesa/src/tnl/t_vbfill.c Mesa/src/tnl/t_vbfill.h Mesa/src/tnl/t_vbindirect.c Mesa/src/tnl/t_vbindirect.h Mesa/src/tnl/t_vbrender.c Mesa/src/tnl/t_vbrender.h Mesa/src/tnl/t_vbxform.c Mesa/src/tnl/t_vbxform.h Mesa/src/tnl/tnl.h Added Files: Mesa/src/mtypes.h Removed Files: Mesa/src/types.h Changed Mesa/src/types to Mesa/src/mtypes.h to avoid conflicts while compiling on a VMS system. ----------------------------------------------------------------------
2000-11-16Move the transform and lighting code to two new directoriesKeith Whitwell
math: Provides basic matrix and vector functionality that might be useful to multiple software t&l implementations, and is used by core mesa to manage the Model, Project, etc matrices. tnl: The real transform & lighting code from core mesa, including everything from glVertex3f through vertex buffer handling, transformation, clipping, lighting and handoff to a driver for rasterization. The interfaces of these can be further tightened up, but the basic splitting up of state and code move is done.
2000-11-05- Changes for new software rasterizer modulesKeith Whitwell
- Remove support for choosing software fallbacks from core code - Remove partial fallback code from vbrender.c -- drivers are now expected to be able to find a triangle/quad function for every state, even if they have to use _swsetup_Triangle or _swsetup_Quad. - Marked derived variables in the GLcontext struct with a leading underscore '_'.
2000-10-30Rearrange VERT_* flags to support 4 texture units.Keith Whitwell
2000-10-30Removed references to gcc's __FUNCTION__ macro.Keith Whitwell
Removed dead file fog_tmp.h
2000-10-30Replace the flags Mesa was using for ctx->NewState with a new setKeith Whitwell
based on the GL attribute groups. Introduced constants describing the circumstances under which some key derived values can change: _SWRAST_NEW_RASTERMASK -- ctx->RasterMask _SWRAST_NEW_TRIANGLE -- The software rasterizer's triangle function _DD_NEW_FEEDBACK -- the 'DD_FEEDBACK' bit in ctx->TriangleCaps These are helpful in deciding whether you need to recalculate state if your recalculation involves reference to a derived value.
2000-10-27Implement EXT_fog_coord and EXT_secondary_color.Keith Whitwell
EXT_secondary_color is disabled until we get some dispatch offsets from SGI.
2000-10-20Changes for multitexture > 3, code clean-ups.Brian Paul
Added GLboolean ctx->Texture.MultiTextureEnabled to determine when multitexture is enabled. Eventually ctx->Texture.ReallyEnabled may become a boolean.
2000-10-18More fixes for MAX_TEXTURE_UNITS > 2. Seems to work now.Brian Paul
Misc code clean-ups, minor bug fixes. MAX_TEXTURE_UNITS now defaults to 3.
2000-09-11Removed immediate struct's maybe_transform_vb pointer.Brian Paul
Call _mesa_maybe_transform_vb() directly.
2000-06-12added EXT version of vertex array functionsBrian Paul
2000-02-25Fog coordinate stage which drivers may use to replace standard foggingKeith Whitwell
mechanism. LogicOp state change callback