diff options
Diffstat (limited to 'cfb/cfbgc.c')
-rw-r--r-- | cfb/cfbgc.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/cfb/cfbgc.c b/cfb/cfbgc.c index b4a9cc484..6c5d69d44 100644 --- a/cfb/cfbgc.c +++ b/cfb/cfbgc.c @@ -85,11 +85,13 @@ SOFTWARE. # define usePolyGlyphBlt miPolyGlyphBlt #endif +void cfbUnPushPixels (GCPtr, PixmapPtr, DrawablePtr, int, int, int, int); + #ifdef FOUR_BIT_CODE # define usePushPixels cfbPushPixels8 #else #ifndef LOWMEMFTPT -# define usePushPixels mfbPushPixels +# define usePushPixels cfbUnPushPixels #else # define usePushPixels miPushPixels #endif /* ifndef LOWMEMFTPT */ @@ -284,6 +286,14 @@ cfbCreateGC(pGC) pGC->clientClip = NULL; pGC->clientClipType = CT_NONE; + if (cfbNonTEOps.PushPixels == cfbUnPushPixels) + { + cfbTEOps1Rect.PushPixels = mfbPushPixelsWeak(); + cfbNonTEOps1Rect.PushPixels = mfbPushPixelsWeak(); + cfbTEOps.PushPixels = mfbPushPixelsWeak(); + cfbNonTEOps.PushPixels = mfbPushPixelsWeak(); + } + /* * some of the output primitives aren't really necessary, since they * will be filled in ValidateGC because of dix/CreateGC() setting all @@ -767,7 +777,7 @@ cfbValidateGC(pGC, changes, pDrawable) #endif #ifdef FOUR_BIT_CODE #ifndef LOWMEMFTPT - pGC->ops->PushPixels = mfbPushPixels; + pGC->ops->PushPixels = mfbPushPixelsWeak(); #else pGC->ops->PushPixels = miPushPixels; #endif /* ifndef LOWMEMFTPT */ @@ -789,3 +799,17 @@ cfbValidateGC(pGC, changes, pDrawable) } } } + +/* + * this is never called, it just exists to have its address + * taken in mfbCreateGC. + */ +static void +cfbUnPushPixels (pGC, pBitmap, pDrawable, dx, dy, xOrg, yOrg) + GCPtr pGC; + PixmapPtr pBitmap; + DrawablePtr pDrawable; + int dx, dy, xOrg, yOrg; +{ + return; +} |