diff options
author | Nicolai Haehnle <prefect_@gmx.net> | 2004-10-15 20:52:47 +0000 |
---|---|---|
committer | Nicolai Haehnle <prefect_@gmx.net> | 2004-10-15 20:52:47 +0000 |
commit | 5696710f96f9517d24958208fb90a5a72d145a26 (patch) | |
tree | ece4fcb1b5a2143914637c31cd5be1fd2d53402d /src/mesa/drivers/dri/r300/radeon_state.c | |
parent | 06487945186f546094b78cc7021a2bc1e695c17b (diff) | |
download | external_mesa3d-5696710f96f9517d24958208fb90a5a72d145a26.zip external_mesa3d-5696710f96f9517d24958208fb90a5a72d145a26.tar.gz external_mesa3d-5696710f96f9517d24958208fb90a5a72d145a26.tar.bz2 |
Huge dumb drop. State:
- Color buffer clear is accelerated, but flickers (possibly caused by a
recent DDX or Mesa change or bad merge)
- Everything else uses software fallback rendering
- There should be no clipping-related artifacts with the
sw-clipspan-fixes.patch against Mesa (posted on dri-devel)
- Multiple clients should be rock solid with a DDX patch that is soon to
come (soon = within the next hour or so)
Diffstat (limited to 'src/mesa/drivers/dri/r300/radeon_state.c')
-rw-r--r-- | src/mesa/drivers/dri/r300/radeon_state.c | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/radeon_state.c b/src/mesa/drivers/dri/r300/radeon_state.c new file mode 100644 index 0000000..19af781 --- /dev/null +++ b/src/mesa/drivers/dri/r300/radeon_state.c @@ -0,0 +1,88 @@ +/************************************************************************** + +Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved. + +The Weather Channel (TM) funded Tungsten Graphics to develop the +initial release of the Radeon 8500 driver under the XFree86 license. +This notice must be preserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Keith Whitwell <keith@tungstengraphics.com> + */ + +#include "glheader.h" +#include "imports.h" +#include "api_arrayelt.h" +#include "enums.h" +#include "colormac.h" +#include "light.h" + +#include "swrast/swrast.h" +#include "array_cache/acache.h" +#include "tnl/tnl.h" +#include "tnl/t_pipeline.h" +#include "swrast_setup/swrast_setup.h" + +#include "r200_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "r200_state.h" + + +/** + * Update cliprects and scissors. + */ +void radeonSetCliprects(radeonContextPtr radeon, GLenum mode) +{ + __DRIdrawablePrivate *dPriv = radeon->dri.drawable; + + switch (mode) { + case GL_FRONT_LEFT: + radeon->numClipRects = dPriv->numClipRects; + radeon->pClipRects = dPriv->pClipRects; + break; + case GL_BACK_LEFT: + /* Can't ignore 2d windows if we are page flipping. + */ + if (dPriv->numBackClipRects == 0 || radeon->doPageFlip) { + radeon->numClipRects = dPriv->numClipRects; + radeon->pClipRects = dPriv->pClipRects; + } else { + radeon->numClipRects = dPriv->numBackClipRects; + radeon->pClipRects = dPriv->pBackClipRects; + } + break; + default: + fprintf(stderr, "bad mode in radeonSetCliprects\n"); + return; + } + + if (IS_FAMILY_R200(radeon)) { + if (((r200ContextPtr)radeon)->state.scissor.enabled) + r200RecalcScissorRects((r200ContextPtr)radeon); + } +} + |