summaryrefslogtreecommitdiff
path: root/src/mga_arc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mga_arc.c')
-rw-r--r--src/mga_arc.c225
1 files changed, 0 insertions, 225 deletions
diff --git a/src/mga_arc.c b/src/mga_arc.c
deleted file mode 100644
index 3c9dd42..0000000
--- a/src/mga_arc.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/************************************************************
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice 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
-OPEN GROUP 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.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <limits.h>
-#include <X11/X.h>
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include <X11/Xprotostr.h>
-#include "regionstr.h"
-#include "mizerarc.h"
-#include "mi.h"
-#include "scrnintstr.h"
-#ifdef HAVE_XAA_H
-#include "xaa.h"
-#include "xaalocal.h"
-#endif
-#include "xf86.h"
-#include "xf86_OSproc.h"
-
-#include "xf86Pci.h"
-
-#include "mga.h"
-#include "mga_reg.h"
-#include "mga_macros.h"
-
-
-#define DRAW_POINT(x, y) { \
- tmp = x; \
- OUTREG(MGAREG_FXBNDRY, (tmp) | (((tmp) + 1) << 16)); \
- OUTREG(MGAREG_YDSTLEN + MGAREG_EXEC, ((y) << 16) | 1); \
-}
-
-#ifdef USE_XAA
-static void
-MGAZeroArc(
- DrawablePtr pDraw,
- GCPtr pGC,
- xArc *arc
-){
- int yoffset, dyoffset, x, y, a, b, d, mask, k1, k3, dx, dy, tmp;
- XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
- ScrnInfoPtr pScrn = infoRec->pScrn;
- MGAPtr pMga = MGAPTR(pScrn);
- miZeroArcRec info;
- Bool do360;
- DDXPointRec org, orgo;
-
- CHECK_DMA_QUIESCENT( pMga, infoRec->pScrn );
-
- (*infoRec->SetupForSolidFill)(infoRec->pScrn, pGC->fgPixel,
- pGC->alu, pGC->planemask);
-
- do360 = miZeroArcSetup(arc, &info, TRUE);
- org.y = info.yorg + pDraw->y;
- org.x = 0;
- orgo.y = info.yorgo + pDraw->y;
- orgo.x = 0;
- info.xorg += pDraw->x;
- info.xorgo += pDraw->x;
-
- MIARCSETUP();
- yoffset = y ? 1 : 0;
- dyoffset = 0;
- mask = info.initialMask;
- if (!(arc->width & 1)) {
- WAITFIFO(4);
- if (mask & 2)
- DRAW_POINT(info.xorgo, org.y);
- if (mask & 8)
- DRAW_POINT(info.xorgo, orgo.y);
- }
- if (!info.end.x || !info.end.y) {
- mask = info.end.mask;
- info.end = info.altend;
- }
- if (do360 && (arc->width == arc->height) && !(arc->width & 1)) {
- int xoffset = 1;
- DDXPointRec orghb, orgohb;
-
- orghb.y = org.y + info.h;
- orghb.x = org.x + info.xorg;
- orgohb.y = orghb.y;
- orgohb.x = orghb.x - info.h;
-
- org.x += info.xorg;
- orgo.x += info.xorg;
- orghb.x += info.h;
- while (1) {
- WAITFIFO(16);
- DRAW_POINT(org.x + x, org.y + yoffset);
- DRAW_POINT(org.x - x, org.y + yoffset);
- DRAW_POINT(orgo.x - x, orgo.y - yoffset);
- DRAW_POINT(orgo.x + x, orgo.y - yoffset);
- if (a < 0) break;
- DRAW_POINT(orghb.x - y, orghb.y - xoffset);
- DRAW_POINT(orgohb.x + y, orgohb.y - xoffset);
- DRAW_POINT(orgohb.x + y, orgohb.y + xoffset);
- DRAW_POINT(orghb.x - y, orghb.y + xoffset);
- xoffset ++;
- MIARCCIRCLESTEP(yoffset ++;);
- }
- org.x -= info.xorg;
- orgo.x -= info.xorg;
- x = info.w;
- yoffset = info.h;
- }
- else if (do360) {
- while (y < info.h || x < info.w) {
- MIARCOCTANTSHIFT(dyoffset = 1;);
- WAITFIFO(8);
- DRAW_POINT(org.x + info.xorg + x, org.y + yoffset);
- DRAW_POINT(org.x + info.xorgo - x, org.y + yoffset);
- DRAW_POINT(orgo.x + info.xorgo - x, orgo.y - yoffset);
- DRAW_POINT(orgo.x + info.xorg + x, orgo.y - yoffset);
- MIARCSTEP(yoffset += dyoffset;, yoffset++;);
- }
- }
- else {
- while (y < info.h || x < info.w) {
- MIARCOCTANTSHIFT(dyoffset = 1;);
- if ((x == info.start.x) || (y == info.start.y)) {
- mask = info.start.mask;
- info.start = info.altstart;
- }
- WAITFIFO(8);
- if (mask & 1)
- DRAW_POINT(org.x + info.xorg + x, org.y + yoffset);
- if (mask & 2)
- DRAW_POINT(org.x + info.xorgo - x, org.y + yoffset);
- if (mask & 4)
- DRAW_POINT(orgo.x + info.xorgo - x, orgo.y - yoffset);
- if (mask & 8)
- DRAW_POINT(orgo.x + info.xorg + x, orgo.y - yoffset);
- if ((x == info.end.x) || (y == info.end.y)) {
- mask = info.end.mask;
- info.end = info.altend;
- }
- MIARCSTEP(yoffset += dyoffset;, yoffset++;);
- }
- }
- if ((x == info.start.x) || (y == info.start.y))
- mask = info.start.mask;
-
- WAITFIFO(4);
- if (mask & 1)
- DRAW_POINT(org.x + info.xorg + x, org.y + yoffset);
- if (mask & 4)
- DRAW_POINT(orgo.x + info.xorgo - x, orgo.y - yoffset);
- if (arc->height & 1) {
- WAITFIFO(4);
- if (mask & 2)
- DRAW_POINT(org.x + info.xorgo - x, org.y + yoffset);
- if (mask & 8)
- DRAW_POINT(orgo.x + info.xorg + x, orgo.y - yoffset);
- }
-
- SET_SYNC_FLAG(infoRec);
-}
-
-void
-MGAPolyArcThinSolid (
- DrawablePtr pDraw,
- GCPtr pGC,
- int narcs,
- xArc *parcs
-){
- xArc *arc;
- BoxRec box;
- int i, x2, y2;
- RegionPtr cclip;
-
- cclip = pGC->pCompositeClip;
-
- if(!REGION_NUM_RECTS(cclip))
- return;
-
- for (arc = parcs, i = narcs; --i >= 0; arc++) {
- if (miCanZeroArc(arc)) {
- box.x1 = arc->x + pDraw->x;
- box.y1 = arc->y + pDraw->y;
- x2 = box.x1 + (int)arc->width + 1;
- box.x2 = x2;
- y2 = box.y1 + (int)arc->height + 1;
- box.y2 = y2;
- if ( (x2 <= SHRT_MAX) && (y2 <= SHRT_MAX) &&
- (RECT_IN_REGION(pDraw->pScreen, cclip, &box) == rgnIN) )
- MGAZeroArc (pDraw, pGC, arc);
- else
- miZeroPolyArc(pDraw, pGC, 1, arc);
- }
- else
- miPolyArc(pDraw, pGC, 1, arc);
- }
-}
-#endif /* USE_XAA */
-