diff options
author | Eric Anholt <anholt@freebsd.org> | 2006-01-03 22:06:23 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2006-01-03 22:06:23 +0000 |
commit | 601ab861b46a62b0742ffd3e937c4fab129664f0 (patch) | |
tree | a3d9c641c83283e941302a9495d4d5234b493eed /render/picturestr.h | |
parent | 1729fc882ceec392331566c95efd5968fe9e97fd (diff) |
Add glyph privates for Xgl, which uses them to implement a glyph cache. EXA
would probably also like to do this. This breaks module ABI for EXA and
XAA, and likely breaks proprietary drivers as well.
Diffstat (limited to 'render/picturestr.h')
-rw-r--r-- | render/picturestr.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/render/picturestr.h b/render/picturestr.h index ab6785c33..e81d769d5 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -306,6 +306,12 @@ typedef void (*AddTrianglesProcPtr) (PicturePtr pPicture, int ntri, xTriangle *tris); +typedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen, + GlyphPtr glyph); + +typedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen, + GlyphPtr glyph); + typedef struct _PictureScreen { int totalPictureSize; unsigned int *PicturePrivateSizes; @@ -358,6 +364,14 @@ typedef struct _PictureScreen { AddTrapsProcPtr AddTraps; + int totalGlyphPrivateSize; + unsigned int *glyphPrivateSizes; + int glyphPrivateLen; + int glyphPrivateOffset; + + RealizeGlyphProcPtr RealizeGlyph; + UnrealizeGlyphProcPtr UnrealizeGlyph; + } PictureScreenRec, *PictureScreenPtr; extern int PictureScreenPrivateIndex; @@ -372,6 +386,9 @@ extern RESTYPE GlyphSetType; #define GetPictureWindow(w) ((PicturePtr) ((w)->devPrivates[PictureWindowPrivateIndex].ptr)) #define SetPictureWindow(w,p) ((w)->devPrivates[PictureWindowPrivateIndex].ptr = (pointer) (p)) +#define GetGlyphPrivatesForScreen(glyph, s) \ + ((glyph)->devPrivates + (GetPictureScreen (s))->glyphPrivateOffset) + #define VERIFY_PICTURE(pPicture, pid, client, mode, err) {\ pPicture = SecurityLookupIDByType(client, pid, PictureType, mode);\ if (!pPicture) { \ |