Merge remote-tracking branch 'aplattner/for-master'
This commit is contained in:
commit
ff61592441
|
@ -549,7 +549,8 @@ int
|
|||
ProcRRDeleteOutputProperty (ClientPtr client)
|
||||
{
|
||||
REQUEST(xRRDeleteOutputPropertyReq);
|
||||
RROutputPtr output;
|
||||
RROutputPtr output;
|
||||
RRPropertyPtr prop;
|
||||
|
||||
REQUEST_SIZE_MATCH(xRRDeleteOutputPropertyReq);
|
||||
UpdateCurrentTime();
|
||||
|
@ -561,6 +562,18 @@ ProcRRDeleteOutputProperty (ClientPtr client)
|
|||
return BadAtom;
|
||||
}
|
||||
|
||||
prop = RRQueryOutputProperty(output, stuff->property);
|
||||
if (!prop)
|
||||
{
|
||||
client->errorValue = stuff->property;
|
||||
return BadName;
|
||||
}
|
||||
|
||||
if (prop->immutable)
|
||||
{
|
||||
client->errorValue = stuff->property;
|
||||
return BadAccess;
|
||||
}
|
||||
|
||||
RRDeleteOutputProperty(output, stuff->property);
|
||||
return Success;
|
||||
|
|
|
@ -569,6 +569,64 @@ miRenderPixelToColor (PictFormatPtr format,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
miTriStrip (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoints,
|
||||
xPointFixed *points)
|
||||
{
|
||||
xTriangle *tris, *tri;
|
||||
int ntri;
|
||||
|
||||
ntri = npoints - 2;
|
||||
tris = malloc(ntri * sizeof (xTriangle));
|
||||
if (!tris)
|
||||
return;
|
||||
|
||||
for (tri = tris; npoints >= 3; npoints--, points++, tri++)
|
||||
{
|
||||
tri->p1 = points[0];
|
||||
tri->p2 = points[1];
|
||||
tri->p3 = points[2];
|
||||
}
|
||||
CompositeTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris);
|
||||
free(tris);
|
||||
}
|
||||
|
||||
void
|
||||
miTriFan (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoints,
|
||||
xPointFixed *points)
|
||||
{
|
||||
xTriangle *tris, *tri;
|
||||
xPointFixed *first;
|
||||
int ntri;
|
||||
|
||||
ntri = npoints - 2;
|
||||
tris = malloc(ntri * sizeof (xTriangle));
|
||||
if (!tris)
|
||||
return;
|
||||
|
||||
first = points++;
|
||||
for (tri = tris; npoints >= 3; npoints--, points++, tri++)
|
||||
{
|
||||
tri->p1 = *first;
|
||||
tri->p2 = points[0];
|
||||
tri->p3 = points[1];
|
||||
}
|
||||
CompositeTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris);
|
||||
free(tris);
|
||||
}
|
||||
|
||||
Bool
|
||||
miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
|
||||
{
|
||||
|
@ -602,5 +660,8 @@ miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
|
|||
ps->AddTraps = 0; /* requires DDX support */
|
||||
ps->AddTriangles = 0; /* requires DDX support */
|
||||
|
||||
ps->TriStrip = miTriStrip; /* converts call to CompositeTriangles */
|
||||
ps->TriFan = miTriFan;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -139,6 +139,26 @@ miCompositeRects (CARD8 op,
|
|||
int nRect,
|
||||
xRectangle *rects);
|
||||
|
||||
extern _X_EXPORT void
|
||||
miTriStrip (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoints,
|
||||
xPointFixed *points);
|
||||
|
||||
extern _X_EXPORT void
|
||||
miTriFan (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoints,
|
||||
xPointFixed *points);
|
||||
|
||||
extern _X_EXPORT void
|
||||
miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box);
|
||||
|
||||
|
|
|
@ -1715,23 +1715,14 @@ CompositeTriStrip (CARD8 op,
|
|||
int npoints,
|
||||
xPointFixed *points)
|
||||
{
|
||||
xTriangle *tris, *tri;
|
||||
int ntri;
|
||||
PictureScreenPtr ps = GetPictureScreen(pDst->pDrawable->pScreen);
|
||||
|
||||
if (npoints < 3)
|
||||
return;
|
||||
ntri = npoints - 2;
|
||||
tris = malloc(ntri * sizeof (xTriangle));
|
||||
if (!tris)
|
||||
return;
|
||||
for (tri = tris; npoints >= 3; npoints--, points++, tri++)
|
||||
{
|
||||
tri->p1 = points[0];
|
||||
tri->p2 = points[1];
|
||||
tri->p3 = points[2];
|
||||
}
|
||||
CompositeTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris);
|
||||
free(tris);
|
||||
|
||||
ValidatePicture (pSrc);
|
||||
ValidatePicture (pDst);
|
||||
(*ps->TriStrip) (op, pSrc, pDst, maskFormat, xSrc, ySrc, npoints, points);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1744,25 +1735,14 @@ CompositeTriFan (CARD8 op,
|
|||
int npoints,
|
||||
xPointFixed *points)
|
||||
{
|
||||
xTriangle *tris, *tri;
|
||||
xPointFixed *first;
|
||||
int ntri;
|
||||
PictureScreenPtr ps = GetPictureScreen(pDst->pDrawable->pScreen);
|
||||
|
||||
if (npoints < 3)
|
||||
return;
|
||||
ntri = npoints - 2;
|
||||
tris = malloc(ntri * sizeof (xTriangle));
|
||||
if (!tris)
|
||||
return;
|
||||
first = points++;
|
||||
for (tri = tris; npoints >= 3; npoints--, points++, tri++)
|
||||
{
|
||||
tri->p1 = *first;
|
||||
tri->p2 = points[0];
|
||||
tri->p3 = points[1];
|
||||
}
|
||||
CompositeTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris);
|
||||
free(tris);
|
||||
|
||||
ValidatePicture (pSrc);
|
||||
ValidatePicture (pDst);
|
||||
(*ps->TriFan) (op, pSrc, pDst, maskFormat, xSrc, ySrc, npoints, points);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -260,6 +260,24 @@ typedef void (*TrianglesProcPtr) (CARD8 op,
|
|||
int ntri,
|
||||
xTriangle *tris);
|
||||
|
||||
typedef void (*TriStripProcPtr) (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoint,
|
||||
xPointFixed *points);
|
||||
|
||||
typedef void (*TriFanProcPtr) (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int npoint,
|
||||
xPointFixed *points);
|
||||
|
||||
typedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen,
|
||||
PictFormatPtr pFormat);
|
||||
|
||||
|
@ -348,6 +366,9 @@ typedef struct _PictureScreen {
|
|||
RealizeGlyphProcPtr RealizeGlyph;
|
||||
UnrealizeGlyphProcPtr UnrealizeGlyph;
|
||||
|
||||
#define PICTURE_SCREEN_VERSION 2
|
||||
TriStripProcPtr TriStrip;
|
||||
TriFanProcPtr TriFan;
|
||||
} PictureScreenRec, *PictureScreenPtr;
|
||||
|
||||
extern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec;
|
||||
|
|
Loading…
Reference in New Issue