diff options
author | Merov Linden <merov@lindenlab.com> | 2014-02-06 11:57:01 -0800 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2014-02-06 11:57:01 -0800 |
commit | 2ba7552b9cd94b62c850365bcc537f0b3e344917 (patch) | |
tree | 744b2a12db06d60866a584a849a78e5f99b17366 | |
parent | 9112a47f9be023dd83bf4de72d490d21d85e6b5e (diff) |
ACME-1301 : Add colortransform as a secondary filter command
-rw-r--r-- | indra/integration_tests/llimage_libtest/filters/colortransform.xml | 16 | ||||
-rwxr-xr-x | indra/llimage/llimagefilter.cpp | 10 |
2 files changed, 26 insertions, 0 deletions
diff --git a/indra/integration_tests/llimage_libtest/filters/colortransform.xml b/indra/integration_tests/llimage_libtest/filters/colortransform.xml new file mode 100644 index 0000000000..de4bebcce2 --- /dev/null +++ b/indra/integration_tests/llimage_libtest/filters/colortransform.xml @@ -0,0 +1,16 @@ +<llsd> + <array> + <array> + <string>colortransform</string> + <real>0.2125</real> + <real>0.7154</real> + <real>0.0721</real> + <real>0.2125</real> + <real>0.7154</real> + <real>0.0721</real> + <real>0.2125</real> + <real>0.7154</real> + <real>0.0721</real> + </array> + </array> +</llsd> diff --git a/indra/llimage/llimagefilter.cpp b/indra/llimage/llimagefilter.cpp index 9093e4b59c..8f7e340d16 100755 --- a/indra/llimage/llimagefilter.cpp +++ b/indra/llimage/llimagefilter.cpp @@ -256,6 +256,16 @@ void LLImageFilter::executeFilter(LLPointer<LLImageRaw> raw_image) kernel.mMatrix[k][j] = mFilterData[i][index++].asReal(); convolve(kernel,normalize,abs_value); } + else if (filter_name == "colortransform") + { + LLMatrix3 transform; + S32 index = 1; + for (S32 k = 0; k < NUM_VALUES_IN_MAT3; k++) + for (S32 j = 0; j < NUM_VALUES_IN_MAT3; j++) + transform.mMatrix[k][j] = mFilterData[i][index++].asReal(); + transform.transpose(); + colorTransform(transform); + } else { llwarns << "Filter unknown, cannot execute filter command : " << filter_name << llendl; |