Index: src/gpu/glsl/GrGLSLProgramDataManager.cpp |
diff --git a/src/gpu/glsl/GrGLSLProgramDataManager.cpp b/src/gpu/glsl/GrGLSLProgramDataManager.cpp |
index 0c98e08edd2abec34a2f95f00f5e1f2f9ff6167d..0803f7af69d66c7128ef3b7616dcb15c7d688b4c 100644 |
--- a/src/gpu/glsl/GrGLSLProgramDataManager.cpp |
+++ b/src/gpu/glsl/GrGLSLProgramDataManager.cpp |
@@ -8,6 +8,7 @@ |
#include "glsl/GrGLSLProgramDataManager.h" |
#include "SkMatrix.h" |
+#include "SkMatrix44.h" |
void GrGLSLProgramDataManager::setSkMatrix(UniformHandle u, const SkMatrix& matrix) const { |
float mt[] = { |
@@ -23,3 +24,10 @@ void GrGLSLProgramDataManager::setSkMatrix(UniformHandle u, const SkMatrix& matr |
}; |
this->setMatrix3f(u, mt); |
} |
+ |
+void GrGLSLProgramDataManager::setSkMatrix44(UniformHandle u, const SkMatrix44& matrix) const { |
+ // TODO: We could skip this temporary buffer if we had direct access to the matrix storage |
+ float m[16]; |
+ matrix.asColMajorf(m); |
+ this->setMatrix4f(u, m); |
+} |