aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/skcms/src/Transform_inl.h
diff options
context:
space:
mode:
authorGravatar skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>2018-07-02 20:24:31 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-02 20:52:52 +0000
commitaae58023a88f9d914e5ef32e2af1262bebbc3d3c (patch)
tree2437616b47dd407d92833337269c02c62bc14884 /third_party/skcms/src/Transform_inl.h
parent9aa30c6ee0e5e2ba4ccc25a4913966a65f808f28 (diff)
Roll skia/third_party/skcms 0977edc92270..9d19e2abf000 (4 commits)
https://skia.googlesource.com/skcms.git/+log/0977edc92270..9d19e2abf000 2018-07-02 mtklein@chromium.org stop using designated initializers 2018-07-02 mtklein@chromium.org explicitly cast 16-bit constants to uint16_t 2018-07-02 mtklein@chromium.org fix typo in c++ header check 2018-07-02 mtklein@chromium.org make skcms buildable as c++ The AutoRoll server is located here: https://skcms-skia-roll.skia.org Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel TBR=ethannicholas@google.com Change-Id: I5c9b29c5d8fcc3d8e3bf64ecd1ab24cac86b5d01 Reviewed-on: https://skia-review.googlesource.com/138954 Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Diffstat (limited to 'third_party/skcms/src/Transform_inl.h')
-rw-r--r--third_party/skcms/src/Transform_inl.h46
1 files changed, 23 insertions, 23 deletions
diff --git a/third_party/skcms/src/Transform_inl.h b/third_party/skcms/src/Transform_inl.h
index a8f3c8a0bd..6dc2a7950f 100644
--- a/third_party/skcms/src/Transform_inl.h
+++ b/third_party/skcms/src/Transform_inl.h
@@ -229,7 +229,7 @@ SI ATTR F NS(approx_pow_)(F x, float y) {
#define approx_pow NS(approx_pow_)
// Return tf(x).
-SI ATTR F NS(apply_transfer_function_)(const skcms_TransferFunction* tf, F x) {
+SI ATTR F NS(apply_tf_)(const skcms_TransferFunction* tf, F x) {
F sign = (F)if_then_else(x < 0, -F1, F1);
x *= sign;
@@ -238,7 +238,7 @@ SI ATTR F NS(apply_transfer_function_)(const skcms_TransferFunction* tf, F x) {
return sign * (F)if_then_else(x < tf->d, linear, nonlinear);
}
-#define apply_transfer_function NS(apply_transfer_function_)
+#define apply_tf NS(apply_tf_)
// Strided loads and stores of N values, starting from p.
#if N == 1
@@ -600,9 +600,9 @@ static void NS(exec_ops)(const Op* ops, const void** args,
U16 rgb;
small_memcpy(&rgb, src + 2*i, 2*N);
- r = CAST(F, rgb & (31<< 0)) * (1.0f / (31<< 0));
- g = CAST(F, rgb & (63<< 5)) * (1.0f / (63<< 5));
- b = CAST(F, rgb & (31<<11)) * (1.0f / (31<<11));
+ r = CAST(F, rgb & (uint16_t)(31<< 0)) * (1.0f / (31<< 0));
+ g = CAST(F, rgb & (uint16_t)(63<< 5)) * (1.0f / (63<< 5));
+ b = CAST(F, rgb & (uint16_t)(31<<11)) * (1.0f / (31<<11));
a = F1;
} break;
@@ -812,7 +812,7 @@ static void NS(exec_ops)(const Op* ops, const void** args,
} break;
case Op_matrix_3x3:{
- const skcms_Matrix3x3* matrix = *args++;
+ const skcms_Matrix3x3* matrix = (const skcms_Matrix3x3*) *args++;
const float* m = &matrix->vals[0][0];
F R = m[0]*r + m[1]*g + m[2]*b,
@@ -825,7 +825,7 @@ static void NS(exec_ops)(const Op* ops, const void** args,
} break;
case Op_matrix_3x4:{
- const skcms_Matrix3x4* matrix = *args++;
+ const skcms_Matrix3x4* matrix = (const skcms_Matrix3x4*) *args++;
const float* m = &matrix->vals[0][0];
F R = m[0]*r + m[1]*g + m[ 2]*b + m[ 3],
@@ -858,40 +858,40 @@ static void NS(exec_ops)(const Op* ops, const void** args,
b = Z * 0.8249f;
} break;
- case Op_tf_r:{ r = apply_transfer_function(*args++, r); } break;
- case Op_tf_g:{ g = apply_transfer_function(*args++, g); } break;
- case Op_tf_b:{ b = apply_transfer_function(*args++, b); } break;
- case Op_tf_a:{ a = apply_transfer_function(*args++, a); } break;
+ case Op_tf_r:{ r = apply_tf((const skcms_TransferFunction*)*args++, r); } break;
+ case Op_tf_g:{ g = apply_tf((const skcms_TransferFunction*)*args++, g); } break;
+ case Op_tf_b:{ b = apply_tf((const skcms_TransferFunction*)*args++, b); } break;
+ case Op_tf_a:{ a = apply_tf((const skcms_TransferFunction*)*args++, a); } break;
- case Op_table_8_r: { r = NS(table_8_ )(*args++, r); } break;
- case Op_table_8_g: { g = NS(table_8_ )(*args++, g); } break;
- case Op_table_8_b: { b = NS(table_8_ )(*args++, b); } break;
- case Op_table_8_a: { a = NS(table_8_ )(*args++, a); } break;
+ case Op_table_8_r: { r = NS(table_8_ )((const skcms_Curve*)*args++, r); } break;
+ case Op_table_8_g: { g = NS(table_8_ )((const skcms_Curve*)*args++, g); } break;
+ case Op_table_8_b: { b = NS(table_8_ )((const skcms_Curve*)*args++, b); } break;
+ case Op_table_8_a: { a = NS(table_8_ )((const skcms_Curve*)*args++, a); } break;
- case Op_table_16_r:{ r = NS(table_16_)(*args++, r); } break;
- case Op_table_16_g:{ g = NS(table_16_)(*args++, g); } break;
- case Op_table_16_b:{ b = NS(table_16_)(*args++, b); } break;
- case Op_table_16_a:{ a = NS(table_16_)(*args++, a); } break;
+ case Op_table_16_r:{ r = NS(table_16_)((const skcms_Curve*)*args++, r); } break;
+ case Op_table_16_g:{ g = NS(table_16_)((const skcms_Curve*)*args++, g); } break;
+ case Op_table_16_b:{ b = NS(table_16_)((const skcms_Curve*)*args++, b); } break;
+ case Op_table_16_a:{ a = NS(table_16_)((const skcms_Curve*)*args++, a); } break;
case Op_clut_3D_8:{
- const skcms_A2B* a2b = *args++;
+ const skcms_A2B* a2b = (const skcms_A2B*) *args++;
NS(clut_3_8_)(a2b, CAST(I32,F0),CAST(I32,F1), &r,&g,&b,a);
} break;
case Op_clut_3D_16:{
- const skcms_A2B* a2b = *args++;
+ const skcms_A2B* a2b = (const skcms_A2B*) *args++;
NS(clut_3_16_)(a2b, CAST(I32,F0),CAST(I32,F1), &r,&g,&b,a);
} break;
case Op_clut_4D_8:{
- const skcms_A2B* a2b = *args++;
+ const skcms_A2B* a2b = (const skcms_A2B*) *args++;
NS(clut_4_8_)(a2b, CAST(I32,F0),CAST(I32,F1), &r,&g,&b,a);
// 'a' was really a CMYK K, so our output is actually opaque.
a = F1;
} break;
case Op_clut_4D_16:{
- const skcms_A2B* a2b = *args++;
+ const skcms_A2B* a2b = (const skcms_A2B*) *args++;
NS(clut_4_16_)(a2b, CAST(I32,F0),CAST(I32,F1), &r,&g,&b,a);
// 'a' was really a CMYK K, so our output is actually opaque.
a = F1;