static TempBuf * gimp_drawable_preview_private (GimpDrawable *drawable, gint width, gint height) { TempBuf *ret_buf; if (! drawable->preview_valid || ! (ret_buf = gimp_preview_cache_get (&drawable->preview_cache, width, height))) { GimpItem *item = GIMP_ITEM (drawable); ret_buf = gimp_drawable_get_sub_preview (drawable, 0, 0, gimp_item_width (item), gimp_item_height (item), width, height); if (! drawable->preview_valid) gimp_preview_cache_invalidate (&drawable->preview_cache); drawable->preview_valid = TRUE; gimp_preview_cache_add (&drawable->preview_cache, ret_buf); } return ret_buf; }
GimpTempBuf * gimp_drawable_get_new_preview (GimpViewable *viewable, GimpContext *context, gint width, gint height) { GimpItem *item = GIMP_ITEM (viewable); GimpImage *image = gimp_item_get_image (item); if (! image->gimp->config->layer_previews) return NULL; return gimp_drawable_get_sub_preview (GIMP_DRAWABLE (viewable), 0, 0, gimp_item_get_width (item), gimp_item_get_height (item), width, height); }