[gimp/gimp-2-10] app: add gimp_babl_format_change_{component_type, linear}()



commit 2a2ad4324d564192791beb6b780744db33d7fdc0
Author: Ell <ell_se yahoo com>
Date:   Wed Mar 20 09:18:12 2019 -0400

    app: add gimp_babl_format_change_{component_type,linear}()
    
    ... which change a format's component-type/TRC, without otherwise
    affecting it.

 app/gegl/gimp-babl.c | 26 +++++++++++++++++++++
 app/gegl/gimp-babl.h | 65 ++++++++++++++++++++++++++++------------------------
 2 files changed, 61 insertions(+), 30 deletions(-)
---
diff --git a/app/gegl/gimp-babl.c b/app/gegl/gimp-babl.c
index 8e574802ac..b2dc20a859 100644
--- a/app/gegl/gimp-babl.c
+++ b/app/gegl/gimp-babl.c
@@ -1285,6 +1285,32 @@ gimp_babl_component_format (GimpImageBaseType base_type,
   g_return_val_if_reached (NULL);
 }
 
+const Babl *
+gimp_babl_format_change_component_type (const Babl        *format,
+                                        GimpComponentType  component)
+{
+  g_return_val_if_fail (format != NULL, NULL);
+
+  return gimp_babl_format (gimp_babl_format_get_base_type (format),
+                           gimp_babl_precision (
+                             component,
+                             gimp_babl_format_get_linear (format)),
+                           babl_format_has_alpha (format));
+}
+
+const Babl *
+gimp_babl_format_change_linear (const Babl *format,
+                                gboolean    linear)
+{
+  g_return_val_if_fail (format != NULL, NULL);
+
+  return gimp_babl_format (gimp_babl_format_get_base_type (format),
+                           gimp_babl_precision (
+                             gimp_babl_format_get_component_type (format),
+                             linear),
+                           babl_format_has_alpha (format));
+}
+
 gchar **
 gimp_babl_print_pixel (const Babl *format,
                        gpointer    pixel)
diff --git a/app/gegl/gimp-babl.h b/app/gegl/gimp-babl.h
index 254f45980d..3062e02425 100644
--- a/app/gegl/gimp-babl.h
+++ b/app/gegl/gimp-babl.h
@@ -22,36 +22,41 @@
 #define __GIMP_BABL_H__
 
 
-void                gimp_babl_init             (void);
-void                gimp_babl_init_fishes      (GimpInitStatusFunc status_callback);
-
-const gchar       * gimp_babl_format_get_description    (const Babl *format);
-GimpColorProfile  * gimp_babl_format_get_color_profile  (const Babl *format);
-
-GimpImageBaseType   gimp_babl_format_get_base_type      (const Babl *format);
-GimpComponentType   gimp_babl_format_get_component_type (const Babl *format);
-GimpPrecision       gimp_babl_format_get_precision      (const Babl *format);
-gboolean            gimp_babl_format_get_linear         (const Babl *format);
-
-GimpComponentType   gimp_babl_component_type   (GimpPrecision      precision);
-gboolean            gimp_babl_linear           (GimpPrecision      precision);
-GimpPrecision       gimp_babl_precision        (GimpComponentType  component,
-                                                gboolean           linear);
-
-gboolean            gimp_babl_is_valid         (GimpImageBaseType  base_type,
-                                                GimpPrecision      precision);
-GimpComponentType   gimp_babl_is_bounded       (GimpPrecision      precision);
-
-const Babl        * gimp_babl_format           (GimpImageBaseType  base_type,
-                                                GimpPrecision      precision,
-                                                gboolean           with_alpha);
-const Babl        * gimp_babl_mask_format      (GimpPrecision      precision);
-const Babl        * gimp_babl_component_format (GimpImageBaseType  base_type,
-                                                GimpPrecision      precision,
-                                                gint               index);
-
-gchar            ** gimp_babl_print_pixel      (const Babl        *format,
-                                                gpointer           pixel);
+void                gimp_babl_init                         (void);
+void                gimp_babl_init_fishes                  (GimpInitStatusFunc  status_callback);
+
+const gchar       * gimp_babl_format_get_description       (const Babl         *format);
+GimpColorProfile  * gimp_babl_format_get_color_profile     (const Babl         *format);
+
+GimpImageBaseType   gimp_babl_format_get_base_type         (const Babl         *format);
+GimpComponentType   gimp_babl_format_get_component_type    (const Babl         *format);
+GimpPrecision       gimp_babl_format_get_precision         (const Babl         *format);
+gboolean            gimp_babl_format_get_linear            (const Babl         *format);
+
+GimpComponentType   gimp_babl_component_type               (GimpPrecision       precision);
+gboolean            gimp_babl_linear                       (GimpPrecision       precision);
+GimpPrecision       gimp_babl_precision                    (GimpComponentType   component,
+                                                            gboolean            linear);
+
+gboolean            gimp_babl_is_valid                     (GimpImageBaseType   base_type,
+                                                            GimpPrecision       precision);
+GimpComponentType   gimp_babl_is_bounded                   (GimpPrecision       precision);
+
+const Babl        * gimp_babl_format                       (GimpImageBaseType   base_type,
+                                                            GimpPrecision       precision,
+                                                            gboolean            with_alpha);
+const Babl        * gimp_babl_mask_format                  (GimpPrecision       precision);
+const Babl        * gimp_babl_component_format             (GimpImageBaseType   base_type,
+                                                            GimpPrecision       precision,
+                                                            gint                index);
+
+const Babl        * gimp_babl_format_change_component_type (const Babl         *format,
+                                                            GimpComponentType   component);
+const Babl        * gimp_babl_format_change_linear         (const Babl         *format,
+                                                            gboolean            linear);
+
+gchar            ** gimp_babl_print_pixel                  (const Babl         *format,
+                                                            gpointer            pixel);
 
 
 #endif /* __GIMP_BABL_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]