summaryrefslogtreecommitdiff
path: root/src/mesa/main/context.c
AgeCommit message (Collapse)Author
2001-03-11Support for swappable tnl modules.Gareth Hughes
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).
2001-03-03lots of gl_*() to _mesa_*() namespace clean-upBrian Paul
2001-02-28GLvisual inside GLframebuffer is no longer a pointer, copy the struct instead.Brian Paul
Added context/drawbuffer visual config sanity checking in _mesa_make_current2(). Added some 'const' keywords.
2001-02-27Initialize Line._WidthKeith Whitwell
2001-02-26Disable most extensions by default. Drivers should enable them as needed.Brian Paul
Renamed gl_*() functions as _mesa_*().
2001-02-17Changed FetchTexel() function pointer arguments.Brian Paul
Implemented glGetTexImage(format=GL_COLOR_INDEX). Changed _mesa_unpack_depth_span() args. Minor changes/clean-ups in mtypes.h. Histogram counter component sizes were wrong.
2001-02-06Overhaul of texture image handling.Brian Paul
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.
2001-01-24removed the unused/broken GL_PGI_misc_hints extensionBrian Paul
2001-01-24Lots of GLchan datatype changes.Brian Paul
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
2001-01-23Replaced struct gl_visual with struct __GLcontextModesRec from glcore.h.Brian Paul
Replace "RGBAMode" with "rgbMode", etc. Other minor clean-ups.
2001-01-08Add a 'RenderPrimitive' callback to t_vb_render.c. Helps out driversKeith Whitwell
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.
2001-01-05various compilation/warning fixesKeith Whitwell
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-12-16set visual->MRD to 2.0Brian Paul
2000-12-09initialize convolution filters to zeroBrian Paul
2000-12-08Initial work on GL_MESA_sprite_point extension.Brian Paul
Still need to resolve clipping issues, finalize the spec.
2000-11-27Added MaxClipPlanes and MaxLights to gl_constants struct so T&LBrian Paul
drivers can report non-default numbers of lights and clip planes.
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-19Replaced Texture.CurrentD[] with separate Texture.Current1/2/3D vars.Brian Paul
Completely removed the dirty texture object list. Set texObj->Complete to GL_FALSE to indicate dirty. Made point/line/triangle/quad SWvertex parameters const. Minor code clean-ups.
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-15Replaced ctx->Point.Size with ctx->Point._SizeBrian Paul
Replaced ctx->Point.UserSize with ctx->Point.Size
2000-11-13Cleanup of derived state calculation prior to seperating software T&LKeith Whitwell
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.
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-31Moved the software rasterizer to a new directory.Keith Whitwell
2000-10-30Rearrange VERT_* flags to support 4 texture units.Keith Whitwell
2000-10-30Removed UPDATE_IMAGE_TRANSFER_STATE, use _NEW_PIXEL flag instead.Brian Paul
More minor GLchan changes. Silence some compiler warnings in cva.[ch]
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-29renamed Current.ByteColor Current.ColorBrian Paul
2000-10-28Basic work to support deep color channels:Brian Paul
Replace GLubyte with GLchan Replace 255 with CHAN_MAX
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-23Major audit of all Mesa's x86 assembly code. This round is basicallyGareth Hughes
general cleanups - more to come. Added P6 architecture timing to debug_xform routines. Still need to add test_all_vertex_functions test for the v16 asm. Dynamic reconfiguration of counter overhead for more accurate benchmarking.
2000-10-21polygon offset changes; added Visual->MRD fieldBrian Paul
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-09if depthBits == 0, set DepthMask = 2^16 to fix per-fragment fog problemsBrian Paul
2000-09-28removed ctx->Texture.Enabled, use ctx->Texture.ReallyEnabled insteadBrian Paul
2000-09-26First batch of OpenGL SI related changes:Brian Paul
Renamed struct gl_context to struct __GLcontextRec. Include glcore.h, setup GL imports/exports. Replaced gl_ prefix with _mesa_ prefix in context.[ch] functions. GLcontext's Visual field is no longer a pointer.
2000-09-26Replaced preprocessor symbol GL_MESA_TRACE with MESA_TRACE.Brian Paul
Changed src/Makefile.X11 to compile Trace sources like other drivers.
2000-09-17new comments, misc clean-upBrian Paul
2000-09-15added GL_MESA_trace supportBrian Paul
2000-09-14explicitly init some texture varsBrian Paul
2000-09-12init mutexBrian Paul
2000-09-08changed gl_frame_buffer Xmax and Ymax to be exclusive boundary valuesBrian Paul
2000-09-07Removed ctx->Driver.LogicOp().Brian Paul
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.
2000-09-05added tracing facility from LokiBrian Paul
2000-08-29don't free ctx inside _mesa_initialize_context() if error, caller does that.Brian Paul
2000-08-21implemented new ImageTransferState bitmaskBrian Paul
2000-07-19initialize GenBit[STRQ] in init_texture_unit()Brian Paul
2000-07-14test for MESA_DEBUG = silent in gl_error(), misc clean-upBrian Paul
2000-06-30initialize some color table scale/bias factorsBrian Paul