diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-02-26 05:27:12 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@l3000.localdomain> | 2011-03-08 08:00:15 -0500 |
commit | d51c52197b616e3f9e54c49b7ec89f7733464e59 (patch) | |
tree | bf6b21536225d727f4feeb534595a4779597a6cf | |
parent | e26280225ace563b1c4de6f736cddb917ae7387a (diff) |
Move miCompositeRects() to fb as fbCompositeRects().
It is not used anywhere else.
Signed-off-by: Soren Sandmann <ssp@redhat.com>
-rw-r--r-- | fb/fbpict.c | 33 | ||||
-rw-r--r-- | fb/fbpict.h | 7 | ||||
-rw-r--r-- | render/Makefile.am | 1 | ||||
-rw-r--r-- | render/mipict.c | 2 | ||||
-rw-r--r-- | render/mipict.h | 7 | ||||
-rw-r--r-- | render/mirect.c | 185 |
6 files changed, 40 insertions, 195 deletions
diff --git a/fb/fbpict.c b/fb/fbpict.c index 312f3df21..8b234c69b 100644 --- a/fb/fbpict.c +++ b/fb/fbpict.c @@ -76,6 +76,37 @@ fbComposite (CARD8 op, free_pixman_pict (pDst, dest); } +void +fbCompositeRects (CARD8 op, + PicturePtr pDst, + xRenderColor *color, + int nRect, + xRectangle *rects) +{ + pixman_image_t *image; + int dst_xoff, dst_yoff; + int i; + + image = image_from_pict (pDst, TRUE, &dst_xoff, &dst_yoff); + + for (i = 0; i < nRect; ++i) + { + rects[i].x += dst_xoff; + rects[i].y += dst_yoff; + } + + pixman_image_fill_rectangles ( + op, image, (pixman_color_t *)color, nRect, (const pixman_rectangle16_t *)rects); + + for (i = 0; i < nRect; ++i) + { + rects[i].x -= dst_xoff; + rects[i].y -= dst_yoff; + } + + free_pixman_pict (pDst, image); +} + static pixman_image_t * create_solid_fill_image (PicturePtr pict) { @@ -362,7 +393,7 @@ fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats) ps = GetPictureScreen(pScreen); ps->Composite = fbComposite; ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; + ps->CompositeRects = fbCompositeRects; ps->RasterizeTrapezoid = fbRasterizeTrapezoid; ps->Trapezoids = fbTrapezoids; ps->AddTraps = fbAddTraps; diff --git a/fb/fbpict.h b/fb/fbpict.h index b880ebbe1..76c4d441c 100644 --- a/fb/fbpict.h +++ b/fb/fbpict.h @@ -43,6 +43,13 @@ fbComposite (CARD8 op, CARD16 width, CARD16 height); +extern _X_EXPORT void +fbCompositeRects (CARD8 op, + PicturePtr pDst, + xRenderColor *color, + int nRect, + xRectangle *rects); + /* fbtrap.c */ extern _X_EXPORT void diff --git a/render/Makefile.am b/render/Makefile.am index d02028b3b..80c3cb730 100644 --- a/render/Makefile.am +++ b/render/Makefile.am @@ -9,7 +9,6 @@ librender_la_SOURCES = \ matrix.c \ miindex.c \ mipict.c \ - mirect.c \ mitrap.c \ mitri.c \ picture.c \ diff --git a/render/mipict.c b/render/mipict.c index e7144b519..c3c194c1a 100644 --- a/render/mipict.c +++ b/render/mipict.c @@ -630,7 +630,7 @@ miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats) /* MI rendering routines */ ps->Composite = 0; /* requires DDX support */ ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; + ps->CompositeRects = 0; ps->Trapezoids = 0; ps->Triangles = 0; diff --git a/render/mipict.h b/render/mipict.h index a49186c4c..0357f03b2 100644 --- a/render/mipict.h +++ b/render/mipict.h @@ -136,13 +136,6 @@ extern _X_EXPORT Bool miIsSolidAlpha (PicturePtr pSrc); extern _X_EXPORT void -miCompositeRects (CARD8 op, - PicturePtr pDst, - xRenderColor *color, - int nRect, - xRectangle *rects); - -extern _X_EXPORT void miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box); extern _X_EXPORT void diff --git a/render/mirect.c b/render/mirect.c deleted file mode 100644 index 4fb347a93..000000000 --- a/render/mirect.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * - * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. - * - * 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, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include "scrnintstr.h" -#include "gcstruct.h" -#include "pixmapstr.h" -#include "windowstr.h" -#include "mi.h" -#include "picturestr.h" -#include "mipict.h" - -static void -miColorRects (PicturePtr pDst, - PicturePtr pClipPict, - xRenderColor *color, - int nRect, - xRectangle *rects, - int xoff, - int yoff) -{ - CARD32 pixel; - GCPtr pGC; - ChangeGCVal tmpval[5]; - RegionPtr pClip; - unsigned long mask; - - miRenderColorToPixel (pDst->pFormat, color, &pixel); - - pGC = GetScratchGC (pDst->pDrawable->depth, pDst->pDrawable->pScreen); - if (!pGC) - return; - tmpval[0].val = GXcopy; - tmpval[1].val = pixel; - tmpval[2].val = pDst->subWindowMode; - mask = GCFunction | GCForeground | GCSubwindowMode; - if (pClipPict->clientClipType == CT_REGION) - { - tmpval[3].val = pDst->clipOrigin.x - xoff; - tmpval[4].val = pDst->clipOrigin.y - yoff; - mask |= GCClipXOrigin|GCClipYOrigin; - - pClip = RegionCreate(NULL, 1); - RegionCopy(pClip, - (RegionPtr) pClipPict->clientClip); - (*pGC->funcs->ChangeClip) (pGC, CT_REGION, pClip, 0); - } - - ChangeGC (NullClient, pGC, mask, tmpval); - ValidateGC (pDst->pDrawable, pGC); - if (xoff || yoff) - { - int i; - for (i = 0; i < nRect; i++) - { - rects[i].x -= xoff; - rects[i].y -= yoff; - } - } - (*pGC->ops->PolyFillRect) (pDst->pDrawable, pGC, nRect, rects); - if (xoff || yoff) - { - int i; - for (i = 0; i < nRect; i++) - { - rects[i].x += xoff; - rects[i].y += yoff; - } - } - FreeScratchGC (pGC); -} - -void -miCompositeRects (CARD8 op, - PicturePtr pDst, - xRenderColor *color, - int nRect, - xRectangle *rects) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - - if (color->alpha == 0xffff) - { - if (op == PictOpOver) - op = PictOpSrc; - } - if (op == PictOpClear) - color->red = color->green = color->blue = color->alpha = 0; - - if (op == PictOpSrc || op == PictOpClear) - { - miColorRects (pDst, pDst, color, nRect, rects, 0, 0); - if (pDst->alphaMap) - miColorRects (pDst->alphaMap, pDst, - color, nRect, rects, - pDst->alphaOrigin.x, - pDst->alphaOrigin.y); - } - else - { - PictFormatPtr rgbaFormat; - PixmapPtr pPixmap; - PicturePtr pSrc; - xRectangle one; - int error; - Pixel pixel; - GCPtr pGC; - ChangeGCVal gcvals[2]; - XID tmpval[1]; - - rgbaFormat = PictureMatchFormat (pScreen, 32, PICT_a8r8g8b8); - if (!rgbaFormat) - goto bail1; - - pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, rgbaFormat->depth, - CREATE_PIXMAP_USAGE_SCRATCH); - if (!pPixmap) - goto bail2; - - miRenderColorToPixel (rgbaFormat, color, &pixel); - - pGC = GetScratchGC (rgbaFormat->depth, pScreen); - if (!pGC) - goto bail3; - gcvals[0].val = GXcopy; - gcvals[1].val = pixel; - - ChangeGC (NullClient, pGC, GCFunction | GCForeground, gcvals); - ValidateGC (&pPixmap->drawable, pGC); - one.x = 0; - one.y = 0; - one.width = 1; - one.height = 1; - (*pGC->ops->PolyFillRect) (&pPixmap->drawable, pGC, 1, &one); - - tmpval[0] = xTrue; - pSrc = CreatePicture (0, &pPixmap->drawable, rgbaFormat, - CPRepeat, tmpval, serverClient, &error); - - if (!pSrc) - goto bail4; - - while (nRect--) - { - CompositePicture (op, pSrc, 0, pDst, 0, 0, 0, 0, - rects->x, - rects->y, - rects->width, - rects->height); - rects++; - } - - FreePicture ((pointer) pSrc, 0); -bail4: - FreeScratchGC (pGC); -bail3: - (*pScreen->DestroyPixmap) (pPixmap); -bail2: -bail1: - ; - } -} |