summaryrefslogtreecommitdiffstats
path: root/src/mesa/tnl
Commit message (Collapse)AuthorAgeFilesLines
* Consistent copyright info (version number, date) across all files.Gareth Hughes2001-03-1238-793/+797
|
* Clean up install, restore for exec vtxfmts.Gareth Hughes2001-03-111-2/+2
|
* Support for swappable tnl modules.Gareth Hughes2001-03-111-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Core Mesa provides a neutral tnl module that verifies the currently module before installing the tnl function pointers in a lazy fashion. It also records which tnl functions have been swapped out, and only restores these when tnl modules themselves are swapped. Fallback strategies: Drivers set a bitmask of dangerous stage changes. When such a state change occurs, the driver should restore the neutral tnl module via _mesa_restore_exec_vtxfmt(). The neutral tnl module will call _mesa_update_state(), followed by ctx->Driver.ValidateTnlModule() if the validation bitmask matches the new state bitmask. The driver should call _tnl_wakeup_exec() if it can no longer handle the current state, which will revert to the default tnl module. In this case, previous vertices should be replayed as required (depending on the current primitive) after the new tnl module is installed. If the driver uses chooser functions for any part of the tnl module, these should generally be reinstalled as part of the fallback to the neutral tnl module. For example, if the lighting state changes, a driver might fall back to the neutral tnl module, verify that the current lighting state can be handled, and use the chooser function to pick the most efficient implementation of the current lighting state. It is up to the drivers to detect and handle fallback cases caused by tnl function calls themselves (such as glTexCoord4f* if the current tnl module can't handle projected textures, for example).
* More g++ warning fixes. Fixes for CHAN_BITS==16, it seems to work.Brian Paul2001-03-082-5/+6
|
* fixed a bunch of g++ warnings/errors. Compiling with g++ can help find lots ↵Brian Paul2001-03-0712-70/+76
| | | | of potential problems
* more namespace clean-upsBrian Paul2001-03-034-29/+29
|
* lots of gl_*() to _mesa_*() namespace clean-upBrian Paul2001-03-0314-107/+107
|
* added fog coord clampingBrian Paul2001-02-271-3/+5
|
* Added GLvector4chan type, removed lots of CHAN_TYPE ifdefs.Keith Whitwell2001-02-207-174/+60
|
* Allow swrast to cope (fairly) cleanly with GL_SEPERATE_SPECULAR whenKeith Whitwell2001-02-163-64/+29
| | | | | | | | | | | | | texturing is not enabled, and without requiring the two colors be added externally. As a part of this, collapsed the decomposition of quads into triangles inside swrast to be hardwired into _swrast_Quad; removed s_quads.[ch]. Removed checks on texture state from t_vb_light.c, which was previously required by swrast. Moved the t_dd_ templates to a new directory.
* Fixed conform problems with recent material tracking change.Keith Whitwell2001-02-167-68/+62
| | | | | | Remove redundant 'update_materials' stage. Fix conform segfault with seperate specular colors in mustpass.c. These tests still fail, however.
* Fix propogation of material values in VB's that don't reach the lightingKeith Whitwell2001-02-1511-234/+150
| | | | | | | | | stage. (Materials now treated more like colors, etc.). Continue whipping the dd templates into shape. Remove old NormalLength code; may come back as a driver helper, but not useful for, eg. hardware t&l drivers.
* fixed a CI-mode spot light conformance failure, but still not clear whyBrian Paul2001-02-141-2/+5
|
* fixed a CI mode segfault, minor clean-upsBrian Paul2001-02-131-10/+9
|
* gl_error clean-upsBrian Paul2001-02-132-4/+5
|
* Overhaul of texture image handling.Brian Paul2001-02-062-4/+2
| | | | | | | | | | 1. gl_texture_image struct's Data pointer points to images in driver's format. 2. Added FetchTexel() function pointer to struct gl_texture_image. 3. Changed Driver Tex[Sub]Image functions, return void now. 4. Texture storage/fetch code in new texstore.c file. 5. Removed texture.[ch] - functions moved to state.c Note: FX driver updates not finished yet.
* Use a lookup table to compute exponents in tnl fogging code. SlightlyKeith Whitwell2001-02-061-7/+42
| | | | clean up the shine table lookup macro.
* Fast no-copy drawarrays for large tristripsKeith Whitwell2001-02-041-37/+59
|
* only compute separate specular if texturing really enabledBrian Paul2001-01-291-3/+5
|
* Removed knowledge of swrast Clear/Bitmap/Accum/Draw/Read/CopyPixelsKeith Whitwell2001-01-297-536/+224
| | | | | | | | | | | | functions from core mesa -- if drivers need these fallbacks they must now call them themselves. Introduced hooks for clip-vertex-interpolation and the rendering of clipped lines and polygons. Allows drivers to interpolate their hardware-format vertices directly. Used in dri drivers to replace fastpath code. Slight optimizations to pipeline build/run routines.
* Lots of GLchan datatype changes.Brian Paul2001-01-2410-206/+322
| | | | | | | | | Added GLvector4us datatype in math/m_vector.[ch] Added _math_trans_4us() in math/m_translate.[ch] Choose GLvector4ub, GLvector4us, GLvector4f at compile time based on CHAN_BITS. Made Driver.ClearColor() and Driver.ClearIndex() optional driver functions. Changed args to Driver.ClearColor(), updated drivers. Reordered files in Makefile.X11
* Replaced struct gl_visual with struct __GLcontextModesRec from glcore.h.Brian Paul2001-01-232-7/+6
| | | | | Replace "RGBAMode" with "rgbMode", etc. Other minor clean-ups.
* Fixes for performance bug on compiled array element paths.Keith Whitwell2001-01-173-7/+13
|
* Fix several conformance problems. Hack solution to line stipple problem.Keith Whitwell2001-01-162-7/+5
|
* Fixed conform feedback and drawelements tests.Keith Whitwell2001-01-145-16/+21
| | | | Use correct pv when rasterizing unfilled polys.
* fix conform dlist testKeith Whitwell2001-01-131-1/+5
|
* Fix crash in book/stencil.Keith Whitwell2001-01-136-65/+89
| | | | | Allow drivers to perform the perspective divide themselves. Assembly to do cliptesting without perspective divide for size-4 vectors.
* Fixed 'IRound' to 'IROUND' in mmath.hKeith Whitwell2001-01-0812-99/+77
| | | | | | Fixed fallback path for drawarrays/_tnl_hard_begin. Removed disabled debug code.
* Add call to Driver.RenderPrimitive()Keith Whitwell2001-01-081-1/+2
|
* Add a 'RenderPrimitive' callback to t_vb_render.c. Helps out driversKeith Whitwell2001-01-084-13/+24
| | | | | | | | | | 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.
* Remove 'pv' parameter from Line/Tri/Point funcs. The provoking vertexKeith Whitwell2001-01-059-667/+454
| | | | | | | | | | | | | | is always the last vertex parameter. Modify clipping to preserve pv colors. Modify swrast and X11 driver to expect the pv in the last vertex (was looking in the first vertex previously). Remove all handling of flatshading from swrast_setup. Allow drivers to override the unclipped render tabs in tnl_render_stage directly. (Like in 3.4). Removed fxsimplerender stage. Modified t_vb_rendertmp.h to remove the need for 'parity' arguments in RENDER_TRI macros.
* added divide by zero checkBrian Paul2001-01-031-2/+5
|
* More color macro clean-ups.Brian Paul2001-01-033-23/+24
| | | | FLOAT_TO_CHAN() macro removed.
* Removed fixed.h (GLfixed now in mtypes.h, fixed-pt macros in mmath.h)Brian Paul2001-01-022-22/+22
| | | | | Clean-up of color conversion macros. New mmath.h macros (IROUND, IFLOOR, ICEIL, FRAC) used in various places.
* Add render stage for unclipped vb's to fx driver.Keith Whitwell2000-12-288-39/+114
| | | | | | Bump MAX_TEXTURE_UNITS to 8 Fix mem. leak in destroy_lists Fix crash in q3 (cva generally)
* fix demos/fire, enable lazy vertex flushingKeith Whitwell2000-12-271-1/+3
|
* Fix evalpoints bug (samples/nurb)Keith Whitwell2000-12-272-8/+9
|
* fix sproingies bugKeith Whitwell2000-12-275-27/+21
|
* Fixes for compiling assembly (disable unused 'masked' versions)Keith Whitwell2000-12-276-92/+128
| | | | | | Fixes for compiling without debug. Fix line clipping Fix unfilled polygon clipping (should be correct now).
* fix xscreensaver coresKeith Whitwell2000-12-261-2/+3
|
* Major rework of tnl moduleKeith Whitwell2000-12-2638-1012/+11388
| | | | | | | 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.
* Compute attenuated point size in a new pipeline stage.Brian Paul2000-12-081-2/+4
| | | | Store computed point size in the SWvertex struct.
* Modified Files:Jouk Jansen2000-11-272-4/+8
| | | | | | | | | Mesa/src/tnl/t_context.c Mesa/src/tnl/t_debug.c Mesa/src/tnl/t_pipeline.c Some updates to silence warnings on my VMS-machine ----------------------------------------------------------------------
* Fixed a couple of bugs that crept into last commitKeith Whitwell2000-11-243-113/+66
| | | | | | | - Eval not compiled correctly - Material colors computed incorrectly Reworked the VERT_TEX flags, now support upto 12 texture units in tnl.
* Support for swappable t&l modules, including an example one in the FXKeith Whitwell2000-11-245-104/+201
| | | | driver (enable with FX_ALLOW_VTXFMT=t).
* Committing in .Jouk Jansen2000-11-225-119/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. ----------------------------------------------------------------------
* minor multi-tex changes, changed MAX_TEXTURE_UNITS to 4Brian Paul2000-11-201-2/+4
|
* fix lvalue cast on ctx->swtnl_imKeith Whitwell2000-11-201-2/+2
|
* * Auto* build fixesJon Taylor2000-11-181-1/+1
| | | | * Added missing includes to math/*
* Move the transform and lighting code to two new directoriesKeith Whitwell2000-11-165-0/+1433
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.