diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2009-03-19 19:07:59 +0100 |
---|---|---|
committer | Maarten Maathuis <madman2003@gmail.com> | 2009-03-19 20:40:03 +0100 |
commit | 12aeddf5ad41902a180f8108623f356642b3e911 (patch) | |
tree | aeb3917373cf8982c516fc1e994d7df59b8fe4e5 /exa | |
parent | a635bb5357648779815ec6729d55f6b478493213 (diff) |
exa: Accept scratch pixmaps with offscreen memory as such.
Diffstat (limited to 'exa')
-rw-r--r-- | exa/exa.c | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -427,11 +427,19 @@ exaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth, if (devKind > 0) pExaPixmap->sys_pitch = devKind; - /* Is this the framebuffer (for classic exa)? */ - if (pPixData && pPixData == pExaScr->info->memoryBase) { - pExaPixmap->fb_ptr = pPixData; - pExaPixmap->fb_pitch = devKind; - pExaPixmap->offscreen = TRUE; + /* Classic EXA: + * - Framebuffer. + * - Scratch pixmap with offscreen memory. + */ + if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS) && + pExaScr->info->memoryBase && pPixData) { + if ((CARD8 *)pPixData >= pExaScr->info->memoryBase && + ((CARD8 *)pPixData - pExaScr->info->memoryBase) < + pExaScr->info->memorySize) { + pExaPixmap->fb_ptr = pPixData; + pExaPixmap->fb_pitch = devKind; + pExaPixmap->offscreen = TRUE; + } } if (width > 0 && height > 0 && bitsPerPixel > 0) { |