[gimp/goat-invasion: 291/608] app: use the same indexed Babl formats during an image's lifetime
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/goat-invasion: 291/608] app: use the same indexed Babl formats during an image's lifetime
- Date: Fri, 27 Apr 2012 20:49:51 +0000 (UTC)
commit 909136bfe4aa9433784f5f41b96cc8face64ffd0
Author: Michael Natterer <mitch gimp org>
Date: Wed Mar 28 16:59:02 2012 +0200
app: use the same indexed Babl formats during an image's lifetime
And only reconfigure them when the colormap changes. This way
undo/redo of layer adding/removing works across type conversions,
because the layers need to be in the same format as the image's
indexed format.
app/core/gimpimage-colormap.c | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/app/core/gimpimage-colormap.c b/app/core/gimpimage-colormap.c
index fbcb887..67168a1 100644
--- a/app/core/gimpimage-colormap.c
+++ b/app/core/gimpimage-colormap.c
@@ -71,10 +71,14 @@ gimp_image_colormap_init (GimpImage *image)
private->colormap = g_new0 (guchar, GIMP_IMAGE_COLORMAP_SIZE);
private->palette = GIMP_PALETTE (gimp_palette_new (NULL, palette_name));
- /* FIXME name palette */
- babl_new_palette (NULL, &private->babl_palette_rgb, &private->babl_palette_rgba);
+ if (! private->babl_palette_rgb)
+ {
+ babl_new_palette (NULL,
+ &private->babl_palette_rgb,
+ &private->babl_palette_rgba);
+ }
- gimp_palette_set_columns (private->palette, 16);
+ gimp_palette_set_columns (private->palette, 16);
gimp_data_make_internal (GIMP_DATA (private->palette), palette_id);
@@ -122,10 +126,10 @@ gimp_image_colormap_free (GimpImage *image)
g_object_unref (private->palette);
private->palette = NULL;
- babl_palette_reset (private->babl_palette_rgb);
- babl_palette_reset (private->babl_palette_rgba);
- private->babl_palette_rgb = NULL;
- private->babl_palette_rgba = NULL;
+ /* don't touch the image's babl_palettes because we might still have
+ * buffers with that palette on the undo stack, and on undoing the
+ * image back to indexed, we must have exactly these palettes around
+ */
}
const Babl *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]