summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorAdam Jackson <ajax@benzedrine.nwnk.net>2007-07-29 14:16:10 -0400
committerAdam Jackson <ajax@benzedrine.nwnk.net>2007-08-25 15:13:46 -0400
commit6f44a2c8a8d6e8f95681ebc7b2dd5ad9c3a02c6e (patch)
treec6a816b74263386c0cbc52934c72195bfe27be24 /render
parentae7f71a8b3d6756161e55d998d6eec37d2695c98 (diff)
Refactor PictureInitIndexedFormats.
The plural version is now static, which is fine since it was only ever called from within picture post-init anyway. The body of the work is now done with a one-shot (public) function that operates on a single format at a time.
Diffstat (limited to 'render')
-rw-r--r--render/picture.c48
-rw-r--r--render/picturestr.h2
2 files changed, 25 insertions, 25 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/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);