XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $XFree86: xc/programs/Xserver/render/animcur.c,v 1.5 2002/12/22 15:07:12 tsi Exp $
|
||||
* $XFree86: xc/programs/Xserver/render/animcur.c,v 1.6 2003/11/03 05:12:01 tsi Exp $
|
||||
*
|
||||
* Copyright <20> 2002 Keith Packard, member of The XFree86 Project, Inc.
|
||||
*
|
||||
@@ -353,7 +353,6 @@ AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *pp
|
||||
CursorPtr pCursor;
|
||||
int i;
|
||||
AnimCurPtr ac;
|
||||
AnimCurElt *ae;
|
||||
|
||||
for (i = 0; i < screenInfo.numScreens; i++)
|
||||
if (!GetAnimCurScreenIfSet (screenInfo.screens[i]))
|
||||
@@ -386,7 +385,6 @@ AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *pp
|
||||
ac = GetAnimCur (pCursor);
|
||||
ac->nelt = ncursor;
|
||||
ac->elts = (AnimCurElt *) (ac + 1);
|
||||
ae = ac->elts;
|
||||
|
||||
for (i = 0; i < ncursor; i++)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $XFree86: xc/programs/Xserver/render/mipict.c,v 1.14 2002/11/06 22:45:36 keithp Exp $
|
||||
* $XFree86: xc/programs/Xserver/render/mipict.c,v 1.16 2003/11/10 18:22:52 tsi Exp $
|
||||
*
|
||||
* Copyright <20> 1999 Keith Packard
|
||||
*
|
||||
@@ -125,6 +125,7 @@ miValidatePicture (PicturePtr pPicture,
|
||||
Mask mask)
|
||||
{
|
||||
DrawablePtr pDrawable = pPicture->pDrawable;
|
||||
ScreenPtr pScreen = pDrawable->pScreen;
|
||||
|
||||
if ((mask & (CPClipXOrigin|CPClipYOrigin|CPClipMask|CPSubwindowMode)) ||
|
||||
(pDrawable->serialNumber != (pPicture->serialNumber & DRAWABLE_SERIAL_BITS)))
|
||||
@@ -178,7 +179,7 @@ miValidatePicture (PicturePtr pPicture,
|
||||
|
||||
if (freeCompClip)
|
||||
{
|
||||
REGION_INTERSECT(pPicture->pScreen, pPicture->pCompositeClip,
|
||||
REGION_INTERSECT(pScreen, pPicture->pCompositeClip,
|
||||
pregWin, pPicture->clientClip);
|
||||
if (freeTmpClip)
|
||||
REGION_DESTROY(pScreen, pregWin);
|
||||
@@ -248,7 +249,8 @@ miValidatePicture (PicturePtr pPicture,
|
||||
#define BOUND(v) (INT16) ((v) < MINSHORT ? MINSHORT : (v) > MAXSHORT ? MAXSHORT : (v))
|
||||
|
||||
static __inline Bool
|
||||
miClipPictureReg (RegionPtr pRegion,
|
||||
miClipPictureReg (ScreenPtr pScreen,
|
||||
RegionPtr pRegion,
|
||||
RegionPtr pClip,
|
||||
int dx,
|
||||
int dy)
|
||||
@@ -285,7 +287,8 @@ miClipPictureReg (RegionPtr pRegion,
|
||||
}
|
||||
|
||||
static __inline Bool
|
||||
miClipPictureSrc (RegionPtr pRegion,
|
||||
miClipPictureSrc (ScreenPtr pScreen,
|
||||
RegionPtr pRegion,
|
||||
PicturePtr pPicture,
|
||||
int dx,
|
||||
int dy)
|
||||
@@ -311,10 +314,8 @@ miClipPictureSrc (RegionPtr pRegion,
|
||||
}
|
||||
else
|
||||
{
|
||||
return miClipPictureReg (pRegion,
|
||||
pPicture->pCompositeClip,
|
||||
dx,
|
||||
dy);
|
||||
return miClipPictureReg (pScreen, pRegion, pPicture->pCompositeClip,
|
||||
dx, dy);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,6 +333,7 @@ miComputeCompositeRegion (RegionPtr pRegion,
|
||||
CARD16 width,
|
||||
CARD16 height)
|
||||
{
|
||||
ScreenPtr pScreen = pSrc->pDrawable->pScreen;
|
||||
int v;
|
||||
|
||||
pRegion->extents.x1 = xDst;
|
||||
@@ -345,18 +347,18 @@ miComputeCompositeRegion (RegionPtr pRegion,
|
||||
if (pRegion->extents.x1 >= pRegion->extents.x2 ||
|
||||
pRegion->extents.y1 >= pRegion->extents.y2)
|
||||
{
|
||||
REGION_EMPTY (pDst->pDrawable->pScreen, pRegion);
|
||||
REGION_EMPTY (pScreen, pRegion);
|
||||
return TRUE;
|
||||
}
|
||||
/* clip against src */
|
||||
if (!miClipPictureSrc (pRegion, pSrc, xDst - xSrc, yDst - ySrc))
|
||||
if (!miClipPictureSrc (pScreen, pRegion, pSrc, xDst - xSrc, yDst - ySrc))
|
||||
{
|
||||
REGION_UNINIT (pScreen, pRegion);
|
||||
return FALSE;
|
||||
}
|
||||
if (pSrc->alphaMap)
|
||||
{
|
||||
if (!miClipPictureSrc (pRegion, pSrc->alphaMap,
|
||||
if (!miClipPictureSrc (pScreen, pRegion, pSrc->alphaMap,
|
||||
xDst - (xSrc + pSrc->alphaOrigin.x),
|
||||
yDst - (ySrc + pSrc->alphaOrigin.y)))
|
||||
{
|
||||
@@ -367,14 +369,15 @@ miComputeCompositeRegion (RegionPtr pRegion,
|
||||
/* clip against mask */
|
||||
if (pMask)
|
||||
{
|
||||
if (!miClipPictureSrc (pRegion, pMask, xDst - xMask, yDst - yMask))
|
||||
if (!miClipPictureSrc (pScreen, pRegion, pMask,
|
||||
xDst - xMask, yDst - yMask))
|
||||
{
|
||||
REGION_UNINIT (pScreen, pRegion);
|
||||
return FALSE;
|
||||
}
|
||||
if (pMask->alphaMap)
|
||||
{
|
||||
if (!miClipPictureSrc (pRegion, pMask->alphaMap,
|
||||
if (!miClipPictureSrc (pScreen, pRegion, pMask->alphaMap,
|
||||
xDst - (xMask + pMask->alphaOrigin.x),
|
||||
yDst - (yMask + pMask->alphaOrigin.y)))
|
||||
{
|
||||
@@ -383,14 +386,15 @@ miComputeCompositeRegion (RegionPtr pRegion,
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!miClipPictureReg (pRegion, pDst->pCompositeClip, 0, 0))
|
||||
if (!miClipPictureReg (pScreen, pRegion, pDst->pCompositeClip, 0, 0))
|
||||
{
|
||||
REGION_UNINIT (pScreen, pRegion);
|
||||
return FALSE;
|
||||
}
|
||||
if (pDst->alphaMap)
|
||||
{
|
||||
if (!miClipPictureReg (pRegion, pDst->alphaMap->pCompositeClip,
|
||||
if (!miClipPictureReg (pScreen,
|
||||
pRegion, pDst->alphaMap->pCompositeClip,
|
||||
-pDst->alphaOrigin.x,
|
||||
-pDst->alphaOrigin.y))
|
||||
{
|
||||
@@ -467,9 +471,9 @@ miRenderPixelToColor (PictFormatPtr format,
|
||||
b = (pixel >> format->direct.blue) & format->direct.blueMask;
|
||||
a = (pixel >> format->direct.alpha) & format->direct.alphaMask;
|
||||
color->red = miFillColor (r, Ones (format->direct.redMask));
|
||||
color->green = miFillColor (r, Ones (format->direct.greenMask));
|
||||
color->blue = miFillColor (r, Ones (format->direct.blueMask));
|
||||
color->alpha = miFillColor (r, Ones (format->direct.alphaMask));
|
||||
color->green = miFillColor (g, Ones (format->direct.greenMask));
|
||||
color->blue = miFillColor (b, Ones (format->direct.blueMask));
|
||||
color->alpha = miFillColor (a, Ones (format->direct.alphaMask));
|
||||
break;
|
||||
case PictTypeIndexed:
|
||||
pIndexed = (miIndexedPtr) (format->index.devPrivate);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $XFree86: xc/programs/Xserver/render/picture.h,v 1.18 2002/11/06 22:45:36 keithp Exp $
|
||||
* $XFree86: xc/programs/Xserver/render/picture.h,v 1.21 2003/11/03 05:12:01 tsi Exp $
|
||||
*
|
||||
* Copyright <20> 2000 SuSE, Inc.
|
||||
*
|
||||
@@ -165,11 +165,13 @@ int PictureParseCmapPolicy (const char *name);
|
||||
#ifdef WIN32
|
||||
typedef __int64 xFixed_32_32;
|
||||
#else
|
||||
# if defined(__alpha__) || defined(__alpha) || \
|
||||
# if defined (_LP64) || \
|
||||
defined(__alpha__) || defined(__alpha) || \
|
||||
defined(ia64) || defined(__ia64__) || \
|
||||
defined(__sparc64__) || \
|
||||
defined(__s390x__) || \
|
||||
defined(x86_64) || defined (__x86_64__)
|
||||
defined(AMD64) || defined (__AMD64__) || \
|
||||
(defined(sgi) && (_MIPS_SZLONG == 64))
|
||||
typedef long xFixed_32_32;
|
||||
# else
|
||||
# if defined(__GNUC__) && \
|
||||
|
||||
375
render/render.c
375
render/render.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $XFree86: xc/programs/Xserver/render/render.c,v 1.26 2003/02/14 18:15:21 dawes Exp $
|
||||
* $XFree86: xc/programs/Xserver/render/render.c,v 1.28 2003/11/03 05:12:02 tsi Exp $
|
||||
*
|
||||
* Copyright <20> 2000 SuSE, Inc.
|
||||
*
|
||||
@@ -186,7 +186,9 @@ int (*SProcRenderVector[RenderNumberRequests])(ClientPtr) = {
|
||||
static void
|
||||
RenderResetProc (ExtensionEntry *extEntry);
|
||||
|
||||
#if 0
|
||||
static CARD8 RenderReqCode;
|
||||
#endif
|
||||
int RenderErrBase;
|
||||
int RenderClientPrivateIndex;
|
||||
|
||||
@@ -231,7 +233,9 @@ RenderExtensionInit (void)
|
||||
RenderResetProc, StandardMinorOpcode);
|
||||
if (!extEntry)
|
||||
return;
|
||||
#if 0
|
||||
RenderReqCode = (CARD8) extEntry->base;
|
||||
#endif
|
||||
RenderErrBase = extEntry->errorBase;
|
||||
}
|
||||
|
||||
@@ -2387,6 +2391,48 @@ PanoramiXRenderSetPictureClipRectangles (ClientPtr client)
|
||||
return (result);
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderSetPictureTransform (ClientPtr client)
|
||||
{
|
||||
REQUEST(xRenderSetPictureTransformReq);
|
||||
int result = Success, j;
|
||||
PanoramiXRes *pict;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xRenderSetPictureTransformReq);
|
||||
|
||||
VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
FOR_NSCREENS_BACKWARD(j) {
|
||||
stuff->picture = pict->info[j].id;
|
||||
result = (*PanoramiXSaveRenderVector[X_RenderSetPictureTransform]) (client);
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderSetPictureFilter (ClientPtr client)
|
||||
{
|
||||
REQUEST(xRenderSetPictureFilterReq);
|
||||
int result = Success, j;
|
||||
PanoramiXRes *pict;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq);
|
||||
|
||||
VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
FOR_NSCREENS_BACKWARD(j) {
|
||||
stuff->picture = pict->info[j].id;
|
||||
result = (*PanoramiXSaveRenderVector[X_RenderSetPictureFilter]) (client);
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderFreePicture (ClientPtr client)
|
||||
{
|
||||
@@ -2551,6 +2597,326 @@ PanoramiXRenderFillRectangles (ClientPtr client)
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderTrapezoids(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderTrapezoidsReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderTrapezoidsReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderTrapezoidsReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
xTrapezoid *trap = (xTrapezoid *) (stuff + 1);
|
||||
int i = extra_len / sizeof (xTrapezoid);
|
||||
|
||||
while (i--) {
|
||||
trap->top -= y_off;
|
||||
trap->bottom -= y_off;
|
||||
trap->left.p1.x -= x_off;
|
||||
trap->left.p1.y -= y_off;
|
||||
trap->left.p2.x -= x_off;
|
||||
trap->left.p2.y -= y_off;
|
||||
trap->right.p1.x -= x_off;
|
||||
trap->right.p1.y -= y_off;
|
||||
trap->right.p2.x -= x_off;
|
||||
trap->right.p2.y -= y_off;
|
||||
trap++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stuff->src = src->info[j].id;
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderTrapezoids]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderTriangles(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderTrianglesReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderTrianglesReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderTrianglesReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
xTriangle *tri = (xTriangle *) (stuff + 1);
|
||||
int i = extra_len / sizeof (xTriangle);
|
||||
|
||||
while (i--) {
|
||||
tri->p1.x -= x_off;
|
||||
tri->p1.y -= y_off;
|
||||
tri->p2.x -= x_off;
|
||||
tri->p2.y -= y_off;
|
||||
tri->p3.x -= x_off;
|
||||
tri->p3.y -= y_off;
|
||||
tri++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stuff->src = src->info[j].id;
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderTriangles]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderTriStrip(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderTriStripReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderTriStripReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderTriStripReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
xPointFixed *fixed = (xPointFixed *) (stuff + 1);
|
||||
int i = extra_len / sizeof (xPointFixed);
|
||||
|
||||
while (i--) {
|
||||
fixed->x -= x_off;
|
||||
fixed->y -= y_off;
|
||||
fixed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stuff->src = src->info[j].id;
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderTriStrip]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderTriFan(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderTriFanReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderTriFanReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderTriFanReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
xPointFixed *fixed = (xPointFixed *) (stuff + 1);
|
||||
int i = extra_len / sizeof (xPointFixed);
|
||||
|
||||
while (i--) {
|
||||
fixed->x -= x_off;
|
||||
fixed->y -= y_off;
|
||||
fixed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stuff->src = src->info[j].id;
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderTriFan]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#if 0 /* Not implemented yet */
|
||||
|
||||
static int
|
||||
PanoramiXRenderColorTrapezoids(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderColorTrapezoidsReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderColorTrapezoidsReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderColorTrapezoidsReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
....;
|
||||
}
|
||||
}
|
||||
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderColorTrapezoids]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderColorTriangles(ClientPtr client)
|
||||
{
|
||||
PanoramiXRes *src, *dst;
|
||||
int result = Success, j;
|
||||
REQUEST(xRenderColorTrianglesReq);
|
||||
char *extra;
|
||||
int extra_len;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xRenderColorTrianglesReq);
|
||||
|
||||
VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
|
||||
RenderErrBase + BadPicture);
|
||||
|
||||
extra_len = (client->req_len << 2) - sizeof (xRenderColorTrianglesReq);
|
||||
|
||||
if (extra_len &&
|
||||
(extra = (char *) ALLOCATE_LOCAL (extra_len))) {
|
||||
memcpy (extra, stuff + 1, extra_len);
|
||||
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (j) memcpy (stuff + 1, extra, extra_len);
|
||||
if (dst->u.pict.root) {
|
||||
int x_off = panoramiXdataPtr[j].x;
|
||||
int y_off = panoramiXdataPtr[j].y;
|
||||
|
||||
if(x_off || y_off) {
|
||||
....;
|
||||
}
|
||||
}
|
||||
|
||||
stuff->dst = dst->info[j].id;
|
||||
result =
|
||||
(*PanoramiXSaveRenderVector[X_RenderColorTriangles]) (client);
|
||||
|
||||
if(result != Success) break;
|
||||
}
|
||||
|
||||
DEALLOCATE_LOCAL(extra);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
PanoramiXRenderInit (void)
|
||||
{
|
||||
@@ -2564,6 +2930,8 @@ PanoramiXRenderInit (void)
|
||||
*/
|
||||
ProcRenderVector[X_RenderCreatePicture] = PanoramiXRenderCreatePicture;
|
||||
ProcRenderVector[X_RenderChangePicture] = PanoramiXRenderChangePicture;
|
||||
ProcRenderVector[X_RenderSetPictureTransform] = PanoramiXRenderSetPictureTransform;
|
||||
ProcRenderVector[X_RenderSetPictureFilter] = PanoramiXRenderSetPictureFilter;
|
||||
ProcRenderVector[X_RenderSetPictureClipRectangles] = PanoramiXRenderSetPictureClipRectangles;
|
||||
ProcRenderVector[X_RenderFreePicture] = PanoramiXRenderFreePicture;
|
||||
ProcRenderVector[X_RenderComposite] = PanoramiXRenderComposite;
|
||||
@@ -2571,6 +2939,11 @@ PanoramiXRenderInit (void)
|
||||
ProcRenderVector[X_RenderCompositeGlyphs16] = PanoramiXRenderCompositeGlyphs;
|
||||
ProcRenderVector[X_RenderCompositeGlyphs32] = PanoramiXRenderCompositeGlyphs;
|
||||
ProcRenderVector[X_RenderFillRectangles] = PanoramiXRenderFillRectangles;
|
||||
|
||||
ProcRenderVector[X_RenderTrapezoids] = PanoramiXRenderTrapezoids;
|
||||
ProcRenderVector[X_RenderTriangles] = PanoramiXRenderTriangles;
|
||||
ProcRenderVector[X_RenderTriStrip] = PanoramiXRenderTriStrip;
|
||||
ProcRenderVector[X_RenderTriFan] = PanoramiXRenderTriFan;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user