diff options
author | Keith Packard <keithp@keithp.com> | 2012-07-03 16:05:42 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-07-05 13:40:18 -0700 |
commit | 7ca32f1c282cb6d4d7255f118a1e2e6f54e6b3fa (patch) | |
tree | 8a820396185c6b2741039f4106758c8b14c84a1c /fb/fb.h | |
parent | 9d457f9c55f12106ba44c1c9db59d14f978f0ae8 (diff) |
Use new screen-specific privates for fb window and gc privates
This ensures that only screens using fb will have this space allocated.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'fb/fb.h')
-rw-r--r-- | fb/fb.h | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -570,12 +570,6 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); } \ } -extern _X_EXPORT DevPrivateKey - fbGetGCPrivateKey(void); - -extern _X_EXPORT DevPrivateKey - fbGetWinPrivateKey(void); - extern _X_EXPORT const GCOps fbGCOps; extern _X_EXPORT const GCFuncs fbGCFuncs; @@ -605,7 +599,7 @@ typedef void (*FinishWrapProcPtr) (DrawablePtr pDraw); #endif extern _X_EXPORT DevPrivateKey - fbGetScreenPrivateKey(void); +fbGetScreenPrivateKey(void); /* private field of a screen */ typedef struct { @@ -615,6 +609,8 @@ typedef struct { SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */ FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */ #endif + DevPrivateKeyRec gcPrivateKeyRec; + DevPrivateKeyRec winPrivateKeyRec; } FbScreenPrivRec, *FbScreenPrivPtr; #define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \ @@ -630,8 +626,10 @@ typedef struct { unsigned char bpp; /* current drawable bpp */ } FbGCPrivRec, *FbGCPrivPtr; +#define fbGetGCPrivateKey(pGC) (&fbGetScreenPrivate((pGC)->pScreen)->gcPrivateKeyRec) + #define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\ - dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey())) + dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey(pGC))) #define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip) #define fbGetExpose(pGC) ((pGC)->fExpose) @@ -639,8 +637,11 @@ typedef struct { #define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap) #define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate) + +#define fbGetWinPrivateKey(pWin) (&fbGetScreenPrivate(((DrawablePtr) (pWin))->pScreen)->winPrivateKeyRec) + #define fbGetWindowPixmap(pWin) ((PixmapPtr)\ - dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey())) + dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey(pWin))) #ifdef ROOTLESS #define __fbPixDrawableX(pPix) ((pPix)->drawable.x) @@ -782,14 +783,14 @@ fb24_32ModifyPixmapHeader(PixmapPtr pPixmap, * fballpriv.c */ extern _X_EXPORT Bool - fbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCIndex); +fbAllocatePrivates(ScreenPtr pScreen); /* * fbarc.c */ extern _X_EXPORT void - fbPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc * parcs); +fbPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc * parcs); /* * fbbits.c |