[gimp] app: add gimp-babl.[ch] and move Babl specific code there
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add gimp-babl.[ch] and move Babl specific code there
- Date: Wed, 2 May 2012 16:40:27 +0000 (UTC)
commit e737bf77fa5452e706bb27abcd1cd158f9a7557d
Author: Michael Natterer <mitch gimp org>
Date: Sat Apr 21 23:46:41 2012 +0200
app: add gimp-babl.[ch] and move Babl specific code there
app/core/gimpimagefile.c | 2 +-
app/display/gimpdisplayshell-title.c | 2 +-
app/gegl/Makefile.am | 2 +
app/gegl/gimp-babl.c | 124 ++++++++++++++++++++++++++++++++++
app/gegl/gimp-babl.h | 30 ++++++++
app/gegl/gimp-gegl.c | 93 +-------------------------
app/gegl/gimp-gegl.h | 4 +-
7 files changed, 161 insertions(+), 96 deletions(-)
---
diff --git a/app/core/gimpimagefile.c b/app/core/gimpimagefile.c
index bb60713..aceb2ec 100644
--- a/app/core/gimpimagefile.c
+++ b/app/core/gimpimagefile.c
@@ -34,7 +34,7 @@
#include "config/gimpcoreconfig.h"
-#include "gegl/gimp-gegl.h"
+#include "gegl/gimp-babl.h"
#include "gegl/gimp-gegl-utils.h"
#include "gimp.h"
diff --git a/app/display/gimpdisplayshell-title.c b/app/display/gimpdisplayshell-title.c
index b0a86bc..9ece777 100644
--- a/app/display/gimpdisplayshell-title.c
+++ b/app/display/gimpdisplayshell-title.c
@@ -31,7 +31,7 @@
#include "config/gimpdisplayconfig.h"
-#include "gegl/gimp-gegl.h"
+#include "gegl/gimp-babl.h"
#include "core/gimpcontainer.h"
#include "core/gimpdrawable.h"
diff --git a/app/gegl/Makefile.am b/app/gegl/Makefile.am
index 6e9d2ef..bac873d 100644
--- a/app/gegl/Makefile.am
+++ b/app/gegl/Makefile.am
@@ -18,6 +18,8 @@ noinst_LIBRARIES = libappgegl.a
libappgegl_a_sources = \
gimp-gegl-enums.h \
gimp-gegl-types.h \
+ gimp-babl.c \
+ gimp-babl.h \
gimp-gegl.c \
gimp-gegl.h \
gimp-gegl-config-proxy.c \
diff --git a/app/gegl/gimp-babl.c b/app/gegl/gimp-babl.c
new file mode 100644
index 0000000..0d62bd3
--- /dev/null
+++ b/app/gegl/gimp-babl.c
@@ -0,0 +1,124 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * gimp-babl.c
+ * Copyright (C) 2012 Michael Natterer <mitch gimp org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <gegl.h>
+
+#include "gimp-gegl-types.h"
+
+#include "gimp-babl.h"
+
+#include "gimp-intl.h"
+
+
+void
+gimp_babl_init (void)
+{
+ babl_format_new ("name", "R' u8",
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ NULL);
+ babl_format_new ("name", "G' u8",
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("G'"),
+ NULL);
+ babl_format_new ("name", "B' u8",
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("B'"),
+ NULL);
+ babl_format_new ("name", "A u8",
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("A"),
+ NULL);
+
+ babl_format_new ("name", "A float",
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("A"),
+ NULL);
+
+ babl_format_new ("name", "A double",
+ babl_model ("R'G'B'A"),
+ babl_type ("double"),
+ babl_component ("A"),
+ NULL);
+}
+
+static const struct
+{
+ const gchar *name;
+ const gchar *description;
+}
+babl_descriptions[] =
+{
+ { "R'G'B' u8", N_("RGB") },
+ { "R'G'B'A u8", N_("RGB-alpha") },
+ { "Y' u8", N_("Grayscale") },
+ { "Y'A u8", N_("Grayscale-alpha") },
+ { "R' u8", N_("Red component") },
+ { "G' u8", N_("Green component") },
+ { "B' u8", N_("Blue component") },
+ { "A u8", N_("Alpha component") }
+};
+
+static GHashTable *babl_description_hash = NULL;
+
+const gchar *
+gimp_babl_get_description (const Babl *babl)
+{
+ const gchar *description;
+
+ g_return_val_if_fail (babl != NULL, NULL);
+
+ if (G_UNLIKELY (! babl_description_hash))
+ {
+ gint i;
+
+ babl_description_hash = g_hash_table_new (g_str_hash,
+ g_str_equal);
+
+ for (i = 0; i < G_N_ELEMENTS (babl_descriptions); i++)
+ g_hash_table_insert (babl_description_hash,
+ (gpointer) babl_descriptions[i].name,
+ gettext (babl_descriptions[i].description));
+ }
+
+ if (babl_format_is_palette (babl))
+ {
+ if (babl_format_has_alpha (babl))
+ return _("Indexed-alpha");
+ else
+ return _("Indexed");
+ }
+
+ description = g_hash_table_lookup (babl_description_hash,
+ babl_get_name (babl));
+
+ if (description)
+ return description;
+
+ return g_strconcat ("ERROR: unknown Babl format ",
+ babl_get_name (babl), NULL);
+}
diff --git a/app/gegl/gimp-babl.h b/app/gegl/gimp-babl.h
new file mode 100644
index 0000000..06dd3ec
--- /dev/null
+++ b/app/gegl/gimp-babl.h
@@ -0,0 +1,30 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * gimp-babl.h
+ * Copyright (C) 2012 Michael Natterer <mitch gimp org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GIMP_BABL_H__
+#define __GIMP_BABL_H__
+
+
+void gimp_babl_init (void);
+
+const gchar * gimp_babl_get_description (const Babl *babl);
+
+
+#endif /* __GIMP_BABL_H__ */
diff --git a/app/gegl/gimp-gegl.c b/app/gegl/gimp-gegl.c
index af0b471..8f905d1 100644
--- a/app/gegl/gimp-gegl.c
+++ b/app/gegl/gimp-gegl.c
@@ -30,6 +30,7 @@
#include "core/gimp.h"
+#include "gimp-babl.h"
#include "gimp-gegl.h"
#include "gimpoperationborder.h"
@@ -80,8 +81,6 @@
#include "gimpoperationreplacemode.h"
#include "gimpoperationantierasemode.h"
-#include "gimp-intl.h"
-
static void gimp_gegl_notify_tile_cache_size (GimpBaseConfig *config);
@@ -113,38 +112,7 @@ gimp_gegl_init (Gimp *gimp)
G_CALLBACK (gimp_gegl_notify_tile_cache_size),
NULL);
- babl_format_new ("name", "R' u8",
- babl_model ("R'G'B'A"),
- babl_type ("u8"),
- babl_component ("R'"),
- NULL);
- babl_format_new ("name", "G' u8",
- babl_model ("R'G'B'A"),
- babl_type ("u8"),
- babl_component ("G'"),
- NULL);
- babl_format_new ("name", "B' u8",
- babl_model ("R'G'B'A"),
- babl_type ("u8"),
- babl_component ("B'"),
- NULL);
- babl_format_new ("name", "A u8",
- babl_model ("R'G'B'A"),
- babl_type ("u8"),
- babl_component ("A"),
- NULL);
-
- babl_format_new ("name", "A float",
- babl_model ("R'G'B'A"),
- babl_type ("float"),
- babl_component ("A"),
- NULL);
-
- babl_format_new ("name", "A double",
- babl_model ("R'G'B'A"),
- babl_type ("double"),
- babl_component ("A"),
- NULL);
+ gimp_babl_init ();
g_type_class_ref (GIMP_TYPE_OPERATION_BORDER);
g_type_class_ref (GIMP_TYPE_OPERATION_CAGE_COEF_CALC);
@@ -195,63 +163,6 @@ gimp_gegl_init (Gimp *gimp)
g_type_class_ref (GIMP_TYPE_OPERATION_ANTI_ERASE_MODE);
}
-static const struct
-{
- const gchar *name;
- const gchar *description;
-}
-babl_descriptions[] =
-{
- { "R'G'B' u8", N_("RGB") },
- { "R'G'B'A u8", N_("RGB-alpha") },
- { "Y' u8", N_("Grayscale") },
- { "Y'A u8", N_("Grayscale-alpha") },
- { "R' u8", N_("Red component") },
- { "G' u8", N_("Green component") },
- { "B' u8", N_("Blue component") },
- { "A u8", N_("Alpha component") }
-};
-
-static GHashTable *babl_description_hash = NULL;
-
-const gchar *
-gimp_babl_get_description (const Babl *babl)
-{
- const gchar *description;
-
- g_return_val_if_fail (babl != NULL, NULL);
-
- if (G_UNLIKELY (! babl_description_hash))
- {
- gint i;
-
- babl_description_hash = g_hash_table_new (g_str_hash,
- g_str_equal);
-
- for (i = 0; i < G_N_ELEMENTS (babl_descriptions); i++)
- g_hash_table_insert (babl_description_hash,
- (gpointer) babl_descriptions[i].name,
- gettext (babl_descriptions[i].description));
- }
-
- if (babl_format_is_palette (babl))
- {
- if (babl_format_has_alpha (babl))
- return _("Indexed-alpha");
- else
- return _("Indexed");
- }
-
- description = g_hash_table_lookup (babl_description_hash,
- babl_get_name (babl));
-
- if (description)
- return description;
-
- return g_strconcat ("ERROR: unknown Babl format ",
- babl_get_name (babl), NULL);
-}
-
static void
gimp_gegl_notify_tile_cache_size (GimpBaseConfig *config)
{
diff --git a/app/gegl/gimp-gegl.h b/app/gegl/gimp-gegl.h
index 6f07440..532f178 100644
--- a/app/gegl/gimp-gegl.h
+++ b/app/gegl/gimp-gegl.h
@@ -22,9 +22,7 @@
#define __GIMP_GEGL_H__
-void gimp_gegl_init (Gimp *gimp);
-
-const gchar * gimp_babl_get_description (const Babl *babl);
+void gimp_gegl_init (Gimp *gimp);
#endif /* __GIMP_GEGL_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]