summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/dd.h
Commit message (Collapse)AuthorAgeFilesLines
* More texture image changes.Brian Paul2001-04-041-1/+9
| | | | | | | | | | | | 1. Added ctx->Driver.ChooseTextureFormat() function. Examines user's internalFormat, format, type params and returns a gl_texture_format. 2. _mesa_store_teximage[123]d() calls ctx->Driver.ChooseTextureFormat(), allocates storage and transfers the image into the desired format. 3. _mesa_transfer_teximage() now takes a gl_texture_format to describe the destination format. Any combination of input format/type and output gl_texture_format is accepted. Uses optimized _mesa_convert_- texsubimage[123]d() functions when possible. 3. DRI driver's TexImage[123]D functions should be a lot simpler now.
* Add PolygonOffset driver callback.Gareth Hughes2001-03-221-8/+9
|
* Split driver struct into swrast/tnl/core components.Keith Whitwell2001-03-191-365/+33
|
* Consistent copyright info (version number, date) across all files.Gareth Hughes2001-03-121-2/+2
|
* Support for swappable tnl modules.Gareth Hughes2001-03-111-49/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* added Driver.BlendColor() function, for completenessBrian Paul2001-03-071-1/+2
|
* changed AlphaFunc() ref from GLclampf to GLchanBrian Paul2001-03-031-2/+2
|
* Template workKeith Whitwell2001-02-241-13/+9
|
* Updated Driver.CopyTexImage[12]D and Driver.CopyTexSubImage[123]D functionsBrian Paul2001-02-191-35/+24
| | | | | so they work like the other teximage functions. Added fallback routines to texstore.c for drivers to use.
* Fix propogation of material values in VB's that don't reach the lightingKeith Whitwell2001-02-151-1/+10
| | | | | | | | | 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.
* Overhaul of texture image handling.Brian Paul2001-02-061-112/+105
| | | | | | | | | | 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-5/+5
| | | | clean up the shine table lookup macro.
* Removed knowledge of swrast Clear/Bitmap/Accum/Draw/Read/CopyPixelsKeith Whitwell2001-01-291-30/+41
| | | | | | | | | | | | 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-241-14/+3
| | | | | | | | | 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
* Added PointSize and PointParametersfv to dd interface, for completeness.Brian Paul2001-01-091-108/+134
| | | | Clean-up and updated comments in dd.h file.
* Add a 'RenderPrimitive' callback to t_vb_render.c. Helps out driversKeith Whitwell2001-01-081-1/+3
| | | | | | | | | | 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-051-11/+16
| | | | | | | | | | | | | | 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.
* Major rework of tnl moduleKeith Whitwell2000-12-261-77/+55
| | | | | | | 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.
* Support for swappable t&l modules, including an example one in the FXKeith Whitwell2000-11-241-3/+122
| | | | driver (enable with FX_ALLOW_VTXFMT=t).
* Move the transform and lighting code to two new directoriesKeith Whitwell2000-11-161-42/+85
| | | | | | | | | | | | | | | 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.
* Removed Driver.Color() and Driver.Index() functions.Brian Paul2000-11-141-20/+6
| | | | | | Pass color or color index directly to WriteMono*() span functions. Updated current s/w drivers accordingly. Clean-up of X gc handling in XMesa driver.
* Cleanup of derived state calculation prior to seperating software T&LKeith Whitwell2000-11-131-9/+7
| | | | | | | | | | | | into a new directory. Specifically the handling of changes to lighting lighting space (light in model vs. light in eye) have been revamped. Moved several derived values used only by swrast into that directory. Removed direct calls to swrast_flush() from vbrender.c -- pushed into ctx->Driver.RenderFinish. Optimized flat-shading case in swrast_setup.
* removed old TexImage() and TexSubImage() functionsBrian Paul2000-11-101-25/+1
|
* - Changes for new software rasterizer modulesKeith Whitwell2000-11-051-25/+1
| | | | | | | | | - 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 '_'.
* Moved the software rasterizer to a new directory.Keith Whitwell2000-10-311-1/+6
|
* Replace the flags Mesa was using for ctx->NewState with a new setKeith Whitwell2000-10-301-1/+7
| | | | | | | | | | | | | | 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.
* More GLchan color channel changes.Brian Paul2000-10-291-7/+3
| | | | | | Some header file re-org: Move matrix, vertex buffer structs to types.h to fix #include mess. Remove typedef, extern declarations from config.h
* Basic work to support deep color channels:Brian Paul2000-10-281-9/+9
| | | | | Replace GLubyte with GLchan Replace 255 with CHAN_MAX
* new params for SpecificCompressedTexFormat() (Bill White)Brian Paul2000-09-281-3/+10
|
* updated commentsBrian Paul2000-09-141-3/+6
|
* removed ctx->Driver.Dither functionBrian Paul2000-09-081-8/+1
|
* Removed ctx->Driver.LogicOp().Brian Paul2000-09-071-18/+4
| | | | | | | | ctx->Driver.Index/ColorMask() now return void. Removed SWmasking and SWLogicOpEnabled variables. LogicOps and color/index masking are no longer special-case device driver functions. The Xlib driver was the only driver that used them. Things are more uniform now.
* added device driver function for texture proxy testingBrian Paul2000-09-071-2/+12
|
* finished compressed texture support (Bill White)Brian Paul2000-08-291-5/+44
|
* added GetInteger/Float/Double/Boolean/Pointer device driver functionsBrian Paul2000-08-081-1/+12
|
* more work on GL_ARB_texture_compressionBrian Paul2000-06-061-0/+41
|
* more work on GL_ARB_texture_compressionBrian Paul2000-05-241-0/+28
|
* changes for single-copy texturesBrian Paul2000-03-291-1/+1
|
* more clean-up and rearrangingBrian Paul2000-03-231-29/+27
|
* removed retainInternalCopy from TexSubImage functionsBrian Paul2000-03-211-11/+8
|
* more reorganization and clean-upBrian Paul2000-03-201-37/+26
|
* rearranged order of some functionsBrian Paul2000-03-201-57/+55
|
* added new TexImage and TexSubImage functionsBrian Paul2000-03-201-2/+82
|
* added device driver functions for CopyTexImage, CopyTexSubImage, GetTexImageBrian Paul2000-03-201-1/+45
|
* removed Driver.UseGlobalTexturePalette()Brian Paul2000-03-071-6/+1
|
* added target parameter to Driver.TexEnv()Brian Paul2000-03-071-5/+3
|
* added LineWidth device driver functionBrian Paul2000-03-031-1/+2
|
* runtime selectable depth buffer depthBrian Paul2000-03-031-1/+3
|
* added device driver ReadPixels and CopyPixels functionsBrian Paul2000-03-031-1/+20
|
* add callbacks for stippleKeith Whitwell2000-02-271-1/+3
|