aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/render
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-10-25 19:53:22 +0200
committermarha <marha@users.sourceforge.net>2014-10-25 19:53:22 +0200
commitd6d5581d5fba846c8476ad4d593da662306765d7 (patch)
tree7a864e15d2c5007b7c3298487a59f11f15c55c75 /xorg-server/render
parenta14858a22f164b5accc4bd192a5d3de21d88e3d1 (diff)
downloadvcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.tar.gz
vcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.tar.bz2
vcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.zip
libXft mesa xserver pixman xkeyboard-config git update 25 Oct 2014
xserver commit 16a32c53f6e9ad1f3284d4596edfa33e9efb740e xkeyboard-config commit 0d4c3d9d891536aa1ec4f1fff5e3df51cfd2718d pixman commit 594e6a6c93e92fcfb495e987aec5617f6c37f467 libXft commit e8a83226bc10afb587f6f34daac44d2ef809c85e mesa commit 13862812dc910a4ef57cb72cb9fe777ce3c14515
Diffstat (limited to 'xorg-server/render')
-rw-r--r--xorg-server/render/mipict.c34
-rw-r--r--xorg-server/render/mirect.c2
-rw-r--r--xorg-server/render/picture.c1
-rw-r--r--xorg-server/render/picturestr.h3
4 files changed, 9 insertions, 31 deletions
diff --git a/xorg-server/render/mipict.c b/xorg-server/render/mipict.c
index 3959fc415..a72510480 100644
--- a/xorg-server/render/mipict.c
+++ b/xorg-server/render/mipict.c
@@ -49,23 +49,9 @@ miDestroyPicture(PicturePtr pPicture)
void
miDestroyPictureClip(PicturePtr pPicture)
{
- switch (pPicture->clientClipType) {
- case CT_NONE:
- return;
- case CT_PIXMAP:
- (*pPicture->pDrawable->pScreen->
- DestroyPixmap) ((PixmapPtr) (pPicture->clientClip));
- break;
- default:
- /*
- * we know we'll never have a list of rectangles, since ChangeClip
- * immediately turns them into a region
- */
+ if (pPicture->clientClip)
RegionDestroy(pPicture->clientClip);
- break;
- }
pPicture->clientClip = NULL;
- pPicture->clientClipType = CT_NONE;
}
int
@@ -73,37 +59,31 @@ miChangePictureClip(PicturePtr pPicture, int type, void *value, int n)
{
ScreenPtr pScreen = pPicture->pDrawable->pScreen;
PictureScreenPtr ps = GetPictureScreen(pScreen);
- void *clientClip;
- int clientClipType;
+ RegionPtr clientClip;
switch (type) {
case CT_PIXMAP:
/* convert the pixmap to a region */
- clientClip = (void *) BitmapToRegion(pScreen, (PixmapPtr) value);
+ clientClip = BitmapToRegion(pScreen, (PixmapPtr) value);
if (!clientClip)
return BadAlloc;
- clientClipType = CT_REGION;
(*pScreen->DestroyPixmap) ((PixmapPtr) value);
break;
case CT_REGION:
clientClip = value;
- clientClipType = CT_REGION;
break;
case CT_NONE:
clientClip = 0;
- clientClipType = CT_NONE;
break;
default:
- clientClip = (void *) RegionFromRects(n, (xRectangle *) value, type);
+ clientClip = RegionFromRects(n, (xRectangle *) value, type);
if (!clientClip)
return BadAlloc;
- clientClipType = CT_REGION;
free(value);
break;
}
(*ps->DestroyPictureClip) (pPicture);
pPicture->clientClip = clientClip;
- pPicture->clientClipType = clientClipType;
pPicture->stateChanges |= CPClipMask;
return Success;
}
@@ -144,7 +124,7 @@ miValidatePicture(PicturePtr pPicture, Mask mask)
* copying of regions. (this wins especially if many clients clip
* by children and have no client clip.)
*/
- if (pPicture->clientClipType == CT_NONE) {
+ if (!pPicture->clientClip) {
if (freeCompClip)
RegionDestroy(pPicture->pCompositeClip);
pPicture->pCompositeClip = pregWin;
@@ -203,7 +183,7 @@ miValidatePicture(PicturePtr pPicture, Mask mask)
pPicture->pCompositeClip = RegionCreate(&pixbounds, 1);
}
- if (pPicture->clientClipType == CT_REGION) {
+ if (pPicture->clientClip) {
if (pDrawable->x || pDrawable->y) {
RegionTranslate(pPicture->clientClip,
pDrawable->x + pPicture->clipOrigin.x,
@@ -284,7 +264,7 @@ miClipPictureReg(pixman_region16_t * pRegion,
static inline Bool
miClipPictureSrc(RegionPtr pRegion, PicturePtr pPicture, int dx, int dy)
{
- if (pPicture->clientClipType != CT_NONE) {
+ if (pPicture->clientClip) {
Bool result;
pixman_region_translate(pPicture->clientClip,
diff --git a/xorg-server/render/mirect.c b/xorg-server/render/mirect.c
index 4e76972d1..a36d1d6e3 100644
--- a/xorg-server/render/mirect.c
+++ b/xorg-server/render/mirect.c
@@ -54,7 +54,7 @@ miColorRects(PicturePtr pDst,
tmpval[1].val = pixel;
tmpval[2].val = pDst->subWindowMode;
mask = GCFunction | GCForeground | GCSubwindowMode;
- if (pClipPict->clientClipType == CT_REGION) {
+ if (pClipPict->clientClip) {
tmpval[3].val = pDst->clipOrigin.x - xoff;
tmpval[4].val = pDst->clipOrigin.y - yoff;
mask |= GCClipXOrigin | GCClipYOrigin;
diff --git a/xorg-server/render/picture.c b/xorg-server/render/picture.c
index 58535d475..cd9bc7485 100644
--- a/xorg-server/render/picture.c
+++ b/xorg-server/render/picture.c
@@ -731,7 +731,6 @@ SetPictureToDefaults(PicturePtr pPicture)
pPicture->polyEdge = PolyEdgeSharp;
pPicture->polyMode = PolyModePrecise;
pPicture->freeCompClip = FALSE;
- pPicture->clientClipType = CT_NONE;
pPicture->componentAlpha = FALSE;
pPicture->repeatType = RepeatNone;
diff --git a/xorg-server/render/picturestr.h b/xorg-server/render/picturestr.h
index 1278f620a..177f87b80 100644
--- a/xorg-server/render/picturestr.h
+++ b/xorg-server/render/picturestr.h
@@ -132,7 +132,6 @@ typedef struct _Picture {
unsigned int polyEdge:1;
unsigned int polyMode:1;
unsigned int freeCompClip:1;
- unsigned int clientClipType:2;
unsigned int componentAlpha:1;
unsigned int repeatType:2;
unsigned int filter:3;
@@ -145,7 +144,7 @@ typedef struct _Picture {
DDXPointRec alphaOrigin;
DDXPointRec clipOrigin;
- void *clientClip;
+ RegionPtr clientClip;
unsigned long serialNumber;