base: register a RGBA to RGBA float conversion for completeness
authorØyvind Kolås <pippin@gimp.org>
Wed, 29 Aug 2018 21:50:56 +0000 (23:50 +0200)
committerØyvind Kolås <pippin@gimp.org>
Wed, 29 Aug 2018 21:50:56 +0000 (23:50 +0200)
babl/base/model-rgb.c

index d4036d221873265f307a101df5d9639f14f04efb..0a832f1786426ffabb38501e0ab3615748958baf 100644 (file)
@@ -898,6 +898,25 @@ rgba_perceptual2rgba (Babl *conversion,
     }
 }
 
+static void
+rgba2rgba_float (Babl *conversion,
+                 char *src,
+                 char *dst,
+                 long  samples)
+{
+  long n = samples;
+
+  while (n--)
+    {
+      ((float *) dst)[0] = ((float *) src)[0];
+      ((float *) dst)[1] = ((float *) src)[1];
+      ((float *) dst)[2] = ((float *) src)[2];
+      ((float *) dst)[3] = ((float *) src)[3];
+      src                += 4 * sizeof (float);
+      dst                += 4 * sizeof (float);
+    }
+}
+
 static void
 conversions (void)
 {
@@ -1318,6 +1337,13 @@ formats (void)
   );
 #endif
 
+  babl_conversion_new (
+    babl_format ("RGBA float"),
+    babl_format ("RGBA float"),
+    "linear", rgba2rgba_float,
+    NULL
+  );
+
   babl_conversion_new (
     babl_format ("R'G'B' float"),
     babl_format ("RGBA float"),