diff --git a/src/OpenColorIO/GpuShaderClassWrapper.cpp b/src/OpenColorIO/GpuShaderClassWrapper.cpp index e0c075a11d..6ca5027ee5 100644 --- a/src/OpenColorIO/GpuShaderClassWrapper.cpp +++ b/src/OpenColorIO/GpuShaderClassWrapper.cpp @@ -66,10 +66,7 @@ std::string OSLShaderClassWrapper::getClassWrapperHeader(const std::string& orig st.newLine() << "vector4 __operator__mul__(matrix m, vector4 v)"; st.newLine() << "{"; st.indent(); - st.newLine() << "return vector4(v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2] + v.w * m[0][3], "; - st.newLine() << " v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2] + v.w * m[1][3], "; - st.newLine() << " v.x * m[2][0] + v.y * m[2][1] + v.z * m[2][2] + v.w * m[2][3], "; - st.newLine() << " v.x * m[3][0] + v.y * m[3][1] + v.z * m[3][2] + v.w * m[3][3]);"; + st.newLine() << "return transform(m, v);"; st.dedent(); st.newLine() << "}"; diff --git a/src/OpenColorIO/GpuShaderUtils.cpp b/src/OpenColorIO/GpuShaderUtils.cpp index c3558418f2..f8cbc88907 100644 --- a/src/OpenColorIO/GpuShaderUtils.cpp +++ b/src/OpenColorIO/GpuShaderUtils.cpp @@ -955,7 +955,7 @@ std::string matrix3Mul(const T * m3x3, const std::string & vecName, GpuLanguage } case LANGUAGE_OSL_1: { - kw << "matrix(" << getMatrixValues(m3x3, lang, false) << ") * " << vecName; + kw << "matrix(" << getMatrixValues(m3x3, lang, true) << ") * " << vecName; break; } case GPU_LANGUAGE_MSL_2_0: @@ -1021,7 +1021,7 @@ std::string matrix4Mul(const T * m4x4, const std::string & vecName, GpuLanguage } case LANGUAGE_OSL_1: { - kw << "matrix(" << getMatrixValues(m4x4, lang, false) << ") * " << vecName; + kw << "matrix(" << getMatrixValues(m4x4, lang, true) << ") * " << vecName; break; } case GPU_LANGUAGE_MSL_2_0: