diff --git a/include/c/sk_colorfilter.h b/include/c/sk_colorfilter.h index c0a5acba5bbb..63cdc699a132 100644 --- a/include/c/sk_colorfilter.h +++ b/include/c/sk_colorfilter.h @@ -19,6 +19,10 @@ SK_C_API sk_colorfilter_t* sk_colorfilter_new_mode(sk_color_t c, sk_blendmode_t SK_C_API sk_colorfilter_t* sk_colorfilter_new_lighting(sk_color_t mul, sk_color_t add); SK_C_API sk_colorfilter_t* sk_colorfilter_new_compose(sk_colorfilter_t* outer, sk_colorfilter_t* inner); SK_C_API sk_colorfilter_t* sk_colorfilter_new_color_matrix(const float array[20]); +SK_C_API sk_colorfilter_t* sk_colorfilter_new_hsla_matrix(const float array[20]); +SK_C_API sk_colorfilter_t* sk_colorfilter_new_linear_to_srgb_gamma(void); +SK_C_API sk_colorfilter_t* sk_colorfilter_new_srgb_to_linear_gamma(void); +SK_C_API sk_colorfilter_t* sk_colorfilter_new_lerp(float weight, sk_colorfilter_t* filter0, sk_colorfilter_t* filter1); SK_C_API sk_colorfilter_t* sk_colorfilter_new_luma_color(void); SK_C_API sk_colorfilter_t* sk_colorfilter_new_high_contrast(const sk_highcontrastconfig_t* config); SK_C_API sk_colorfilter_t* sk_colorfilter_new_table(const uint8_t table[256]); diff --git a/src/c/sk_colorfilter.cpp b/src/c/sk_colorfilter.cpp index 18421b0235e6..e38b192648e7 100644 --- a/src/c/sk_colorfilter.cpp +++ b/src/c/sk_colorfilter.cpp @@ -36,6 +36,22 @@ sk_colorfilter_t* sk_colorfilter_new_color_matrix(const float array[20]) { return ToColorFilter(SkColorFilters::Matrix(array).release()); } +sk_colorfilter_t* sk_colorfilter_new_hsla_matrix(const float array[20]) { + return ToColorFilter(SkColorFilters::HSLAMatrix(array).release()); +} + +sk_colorfilter_t* sk_colorfilter_new_linear_to_srgb_gamma(void) { + return ToColorFilter(SkColorFilters::LinearToSRGBGamma().release()); +} + +sk_colorfilter_t* sk_colorfilter_new_srgb_to_linear_gamma(void) { + return ToColorFilter(SkColorFilters::SRGBToLinearGamma().release()); +} + +sk_colorfilter_t* sk_colorfilter_new_lerp(float weight, sk_colorfilter_t* filter0, sk_colorfilter_t* filter1) { + return ToColorFilter(SkColorFilters::Lerp(weight, sk_ref_sp(AsColorFilter(filter0)), sk_ref_sp(AsColorFilter(filter1))).release()); +} + sk_colorfilter_t* sk_colorfilter_new_luma_color(void) { return ToColorFilter(SkLumaColorFilter::Make().release()); }