| Index: third_party/qcms/src/transform.c
|
| diff --git a/third_party/qcms/src/transform.c b/third_party/qcms/src/transform.c
|
| index d3e3e1b21a22e1840e339b4da80de94d03f4f91e..bafd26a9e4f0efa966512188a6ed6b0bcbaf3c08 100644
|
| --- a/third_party/qcms/src/transform.c
|
| +++ b/third_party/qcms/src/transform.c
|
| @@ -1252,6 +1252,8 @@ qcms_transform* qcms_transform_create(
|
| return NULL;
|
| }
|
|
|
| + transform->transform_flags = 0;
|
| +
|
| if (out->output_table_r &&
|
| out->output_table_g &&
|
| out->output_table_b) {
|
| @@ -1365,6 +1367,9 @@ qcms_transform* qcms_transform_create(
|
| transform->matrix[1][2] = result.m[2][1];
|
| transform->matrix[2][2] = result.m[2][2];
|
|
|
| + /* Flag transform as matrix. */
|
| + transform->transform_flags |= TRANSFORM_FLAG_MATRIX;
|
| +
|
| } else if (in->color_space == GRAY_SIGNATURE) {
|
| if (in_type != QCMS_DATA_GRAY_8 &&
|
| in_type != QCMS_DATA_GRAYA_8){
|
| @@ -1431,7 +1436,27 @@ void qcms_transform_data_type(qcms_transform *transform, void *src, void *dest,
|
| }
|
|
|
| qcms_bool qcms_supports_iccv4;
|
| +
|
| void qcms_enable_iccv4()
|
| {
|
| qcms_supports_iccv4 = true;
|
| }
|
| +
|
| +static inline qcms_bool transform_is_matrix(qcms_transform *t)
|
| +{
|
| + return (t->transform_flags & TRANSFORM_FLAG_MATRIX) ? true : false;
|
| +}
|
| +
|
| +qcms_bool qcms_transform_is_matrix(qcms_transform *t)
|
| +{
|
| + return transform_is_matrix(t);
|
| +}
|
| +
|
| +float qcms_transform_get_matrix(qcms_transform *t, unsigned i, unsigned j)
|
| +{
|
| + assert(transform_is_matrix(t) && i < 3 && j < 3);
|
| +
|
| + // Return transform matrix element in row major order (permute i and j)
|
| +
|
| + return t->matrix[j][i];
|
| +}
|
|
|