diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-03-08 10:14:27 -0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2011-03-14 14:09:05 -0400 |
commit | 0eb5b0fbcf1233a93f285ff1e1609fcbd01e7c79 (patch) | |
tree | e16377cb332b7dfbb3c3282186eb4b242fea6343 /render/picture.c | |
parent | c2af0cea02bd85f4d5954c16e34b4a8fb0fe2243 (diff) |
Absorb miTriStrip() into CompositeTriStrip()
There is no need to virtualize this function that nobody cares about.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Soren Sandmann <ssp@redhat.com>
Diffstat (limited to 'render/picture.c')
-rw-r--r-- | render/picture.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/render/picture.c b/render/picture.c index e16163ac7..015d63364 100644 --- a/render/picture.c +++ b/render/picture.c @@ -1773,11 +1773,25 @@ CompositeTriStrip (CARD8 op, int npoints, xPointFixed *points) { - PictureScreenPtr ps = GetPictureScreen(pDst->pDrawable->pScreen); + ScreenPtr pScreen = pDst->pDrawable->pScreen; + PictureScreenPtr ps = GetPictureScreen(pScreen); + xTriangle *tris, *tri; + int ntri; - ValidatePicture (pSrc); - ValidatePicture (pDst); - (*ps->TriStrip) (op, pSrc, pDst, maskFormat, xSrc, ySrc, npoints, points); + 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); } void |