diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/picture.c | 48 | ||||
-rw-r--r-- | render/picture.h | 2 | ||||
-rw-r--r-- | render/picturestr.h | 2 |
3 files changed, 26 insertions, 26 deletions
diff --git a/render/picture.c b/render/picture.c index 5ddd68ce3..ede865f28 100644 --- a/render/picture.c +++ b/render/picture.c @@ -452,6 +452,28 @@ PictureFindVisual (ScreenPtr pScreen, VisualID visual) } Bool +PictureInitIndexedFormat(ScreenPtr pScreen, PictFormatPtr format) +{ + PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); + + if (format->type != PictTypeIndexed || format->index.pColormap) + return TRUE; + + if (format->index.vid == pScreen->rootVisual) { + format->index.pColormap = + (ColormapPtr) LookupIDByType(pScreen->defColormap, RT_COLORMAP); + } else { + VisualPtr pVisual = PictureFindVisual(pScreen, format->index.vid); + if (!CreateColormap(FakeClientID (0), pScreen, pVisual, + &format->index.pColormap, AllocNone, 0)) + return FALSE; + } + if (!ps->InitIndexed(pScreen, format)) + return FALSE; + return TRUE; +} + +static Bool PictureInitIndexedFormats (ScreenPtr pScreen) { PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); @@ -463,30 +485,8 @@ PictureInitIndexedFormats (ScreenPtr pScreen) format = ps->formats; nformat = ps->nformats; while (nformat--) - { - if (format->type == PictTypeIndexed && !format->index.pColormap) - { - if (format->index.vid == pScreen->rootVisual) - format->index.pColormap = (ColormapPtr) LookupIDByType(pScreen->defColormap, - RT_COLORMAP); - else - { - VisualPtr pVisual; - - pVisual = PictureFindVisual (pScreen, format->index.vid); - if (CreateColormap (FakeClientID (0), pScreen, - pVisual, - &format->index.pColormap, AllocNone, - 0) != Success) - { - return FALSE; - } - } - if (!(*ps->InitIndexed) (pScreen, format)) - return FALSE; - } - format++; - } + if (!PictureInitIndexedFormat(pScreen, format++)) + return FALSE; return TRUE; } diff --git a/render/picture.h b/render/picture.h index 1719587a5..563a81b43 100644 --- a/render/picture.h +++ b/render/picture.h @@ -25,7 +25,7 @@ #ifndef _PICTURE_H_ #define _PICTURE_H_ -#include <pixman/pixman.h> +#include <pixman.h> typedef struct _DirectFormat *DirectFormatPtr; typedef struct _PictFormat *PictFormatPtr; diff --git a/render/picturestr.h b/render/picturestr.h index 01572ec48..005c58808 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -449,7 +449,7 @@ void PictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef); Bool -PictureInitIndexedFormats (ScreenPtr pScreen); +PictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format); Bool PictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel); |