Use color cache for creating bitmap
* src/image.c (x_create_bitmap_from_xpm_data) [ALLOC_XPM_COLORS]: Set attributes to use the caching color allocator. Initialize and free the cache.
This commit is contained in:
parent
851be0f607
commit
25e32bd861
1 changed files with 11 additions and 0 deletions
11
src/image.c
11
src/image.c
|
@ -3508,6 +3508,14 @@ x_create_bitmap_from_xpm_data (struct frame *f, const char **bits)
|
|||
attrs.valuemask |= XpmVisual;
|
||||
attrs.valuemask |= XpmColormap;
|
||||
|
||||
#ifdef ALLOC_XPM_COLORS
|
||||
attrs.color_closure = f;
|
||||
attrs.alloc_color = xpm_alloc_color;
|
||||
attrs.free_colors = xpm_free_colors;
|
||||
attrs.valuemask |= XpmAllocColor | XpmFreeColors | XpmColorClosure;
|
||||
xpm_init_color_cache (f, &attrs);
|
||||
#endif
|
||||
|
||||
rc = XpmCreatePixmapFromData (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
|
||||
(char **) bits, &bitmap, &mask, &attrs);
|
||||
if (rc != XpmSuccess)
|
||||
|
@ -3526,6 +3534,9 @@ x_create_bitmap_from_xpm_data (struct frame *f, const char **bits)
|
|||
dpyinfo->bitmaps[id - 1].depth = attrs.depth;
|
||||
dpyinfo->bitmaps[id - 1].refcount = 1;
|
||||
|
||||
#ifdef ALLOC_XPM_COLORS
|
||||
xpm_free_color_cache ();
|
||||
#endif
|
||||
XpmFreeAttributes (&attrs);
|
||||
return id;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue