diff options
author | Eric Anholt <anholt@freebsd.org> | 2006-03-31 19:41:28 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2006-03-31 19:41:28 +0000 |
commit | 2e38fedd29e7e55d01e3edce6a73b8ceaac17911 (patch) | |
tree | 3f6b1c560c62ff862cf6b07cc898804968159528 /exa/exa_priv.h | |
parent | f480dc797b51f080f912efc7867d6d8e50be074c (diff) |
Add an option to EXA for the DDX to request that EXA hide the pixmap's
devPrivate.ptr when pointing at offscreen memory, outside of
exaPrepare/FinishAccess(). This was used with fakexa to find (by NULL
dereference) many instances of un-Prepared CPU access to the
framebuffer:
- GC tiles used in several ops when fillStyle == FillTiled were never
Prepared.
- Migration could lead to un-Prepared access to mask data in render's
Trapezoids and Triangles
- PutImage's UploadToScreen failure fallback failed to Prepare.
Diffstat (limited to 'exa/exa_priv.h')
-rw-r--r-- | exa/exa_priv.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/exa/exa_priv.h b/exa/exa_priv.h index 0a94cfe73..5effca506 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -100,10 +100,13 @@ typedef struct { CopyWindowProcPtr SavedCopyWindow; #ifdef RENDER CompositeProcPtr SavedComposite; + RasterizeTrapezoidProcPtr SavedRasterizeTrapezoid; + AddTrianglesProcPtr SavedAddTriangles; GlyphsProcPtr SavedGlyphs; #endif Bool swappedOut; enum ExaMigrationHeuristic migration; + Bool hideOffscreenPixmapData; } ExaScreenPrivRec, *ExaScreenPrivPtr; /* @@ -220,24 +223,14 @@ ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC, int nsegInit, xSegment *pSegInit); void -ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC, - int nrects, xRectangle *prect); - -void ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *pArcs); -#define ExaCheckFillPolygon miFillPolygon - void ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC, int nrect, xRectangle *prect); void -ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC, - int narcs, xArc *pArcs); - -void ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC, int x, int y, unsigned int nglyph, CharInfoPtr *ppci, pointer pglyphBase); @@ -374,6 +367,7 @@ exaCopyNtoN (DrawablePtr pSrcDrawable, Pixel bitplane, void *closure); +/* exa_render.c */ void exaComposite(CARD8 op, PicturePtr pSrc, @@ -389,6 +383,14 @@ exaComposite(CARD8 op, CARD16 height); void +exaRasterizeTrapezoid (PicturePtr pPicture, xTrapezoid *trap, + int x_off, int y_off); + +void +exaAddTriangles (PicturePtr pPicture, INT16 x_off, INT16 y_off, int ntri, + xTriangle *tris); + +void exaGlyphs (CARD8 op, PicturePtr pSrc, PicturePtr pDst, |