Additional colorspace APIs
authorMatthew Leibowitz <mattleibow@live.com>
Tue, 11 Jul 2017 19:57:16 +0000 (21:57 +0200)
committerMatthew Leibowitz <mattleibow@live.com>
Tue, 11 Jul 2017 19:57:16 +0000 (21:57 +0200)
include/c/sk_colorspace.h
src/c/sk_colorspace.cpp

index 5457df4..efc7ecf 100644 (file)
@@ -22,9 +22,11 @@ SK_C_API sk_colorspace_t* sk_colorspace_new_rgb_with_coeffs(const sk_colorspace_
 SK_C_API sk_colorspace_t* sk_colorspace_new_rgb_with_coeffs_and_gamut(const sk_colorspace_transfer_fn_t* coeffs, sk_colorspace_gamut_t gamut);
 SK_C_API bool sk_colorspace_gamma_close_to_srgb(const sk_colorspace_t* cColorSpace);
 SK_C_API bool sk_colorspace_gamma_is_linear(const sk_colorspace_t* cColorSpace);
+SK_C_API bool sk_colorspace_is_srgb(const sk_colorspace_t* cColorSpace);
 SK_C_API bool sk_colorspace_equals(const sk_colorspace_t* src, const sk_colorspace_t* dst);
 SK_C_API bool sk_colorspace_to_xyzd50(const sk_colorspace_t* cColorSpace, sk_matrix44_t* toXYZD50);
 SK_C_API bool sk_colorspaceprimaries_to_xyzd50(const sk_colorspaceprimaries_t* primaries, sk_matrix44_t* toXYZD50);
+SK_C_API void sk_colorspace_transfer_fn_invert(const sk_colorspace_transfer_fn_t* transfer, sk_colorspace_transfer_fn_t* inverted);
 
 SK_C_PLUS_PLUS_END_GUARD
 
index dc57380..dbe2f9e 100644 (file)
@@ -51,6 +51,10 @@ bool sk_colorspace_gamma_is_linear(const sk_colorspace_t* cColorSpace) {
     return AsColorSpace(cColorSpace)->gammaIsLinear();
 }
 
+bool sk_colorspace_is_srgb(const sk_colorspace_t* cColorSpace) {
+    return AsColorSpace(cColorSpace)->isSRGB();
+}
+
 bool sk_colorspace_equals(const sk_colorspace_t* src, const sk_colorspace_t* dst) {
     return SkColorSpace::Equals(AsColorSpace(src), AsColorSpace(dst));
 }
@@ -62,3 +66,7 @@ bool sk_colorspace_to_xyzd50(const sk_colorspace_t* cColorSpace, sk_matrix44_t*
 bool sk_colorspaceprimaries_to_xyzd50(const sk_colorspaceprimaries_t* primaries, sk_matrix44_t* toXYZD50) {
     return AsColorSpacePrimaries(primaries)->toXYZD50(AsMatrix44(toXYZD50));
 }
+
+void sk_colorspace_transfer_fn_invert(const sk_colorspace_transfer_fn_t* transfer, sk_colorspace_transfer_fn_t* inverted) {
+    *inverted = ToColorSpaceTransferFn(AsColorSpaceTransferFn(transfer)->invert());
+}