Rootless: Imported changes made in xorg-server-1.2-apple branch

This commit is contained in:
Jeremy Huddleston 2007-11-22 13:53:00 -08:00
parent 59c7ca6586
commit a751bc12be
2 changed files with 72 additions and 49 deletions

View File

@ -482,6 +482,18 @@ RootlessComputeClips (pParent, pScreen, universe, kind, exposed)
universe, &pParent->clipList);
}
/*
* One last thing: backing storage. We have to try to save what parts of
* the window are about to be obscured. We can just subtract the universe
* from the old clipList and get the areas that were in the old but aren't
* in the new and, hence, are about to be obscured.
*/
if (pParent->backStorage && !resized)
{
REGION_SUBTRACT( pScreen, exposed, &pParent->clipList, universe);
(* pScreen->SaveDoomedAreas)(pParent, exposed, dx, dy);
}
/* HACK ALERT - copying contents of regions, instead of regions */
{
RegionRec tmp;

View File

@ -46,6 +46,7 @@
#include "fbpict.h"
#include "safeAlpha.h"
#include "rootlessCommon.h"
# define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b))
/* Optimized version of fbCompositeSolidMask_nx8x8888 */
void
@ -145,6 +146,16 @@ SafeAlphaComposite (CARD8 op,
CARD16 width,
CARD16 height)
{
if (!pSrc) {
ErrorF("SafeAlphaComposite: pSrc must not be null!\n");
return;
}
if (!pDst) {
ErrorF("SafeAlphaComposite: pDst must not be null!\n");
return;
}
int oldDepth = pDst->pDrawable->depth;
int oldFormat = pDst->format;
@ -167,7 +178,7 @@ SafeAlphaComposite (CARD8 op,
pDst->format = PICT_a8r8g8b8;
}
if (pSrc && pMask && pSrc->pDrawable && pMask->pDrawable &&
if (pSrc->pDrawable && pMask && pMask->pDrawable &&
!pSrc->transform && !pMask->transform &&
!pSrc->alphaMap && !pMask->alphaMap &&
!pMask->repeat && !pMask->componentAlpha && !pDst->alphaMap &&