diff options
| author | 2014-01-16 14:48:54 -0800 | |
|---|---|---|
| committer | 2014-01-16 14:48:54 -0800 | |
| commit | cf8d9d4af3faecd804763d7c6f85b3f8741e180b (patch) | |
| tree | 96a6f7ce4ecebc632bc2224eb693166d04771461 | |
| parent | c46809e9979204aa9a131d8933da23d298411441 (diff) | |
Fix view z translation with 3d projection disabled
The ortho projection can't handle 3d translation, so skip that step if
perspective projection isn't enabled.
Change-Id: I231e6bcecc82e876b697e098e034f0fd3b06efde
| -rw-r--r-- | libs/hwui/DisplayList.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/hwui/DisplayList.cpp b/libs/hwui/DisplayList.cpp index d3d2613ea47d..a1563418030b 100644 --- a/libs/hwui/DisplayList.cpp +++ b/libs/hwui/DisplayList.cpp @@ -418,11 +418,16 @@ void DisplayList::setViewProperties(OpenGLRenderer& renderer, T& handler, renderer.concatMatrix(mAnimationMatrix); } if (mMatrixFlags != 0) { - if (mMatrixFlags == TRANSLATION) { - renderer.translate(mTranslationX, mTranslationY, mTranslationZ); - } else { - if (Caches::getInstance().propertyEnable3d) { + if (Caches::getInstance().propertyEnable3d) { + if (mMatrixFlags == TRANSLATION) { + renderer.translate(mTranslationX, mTranslationY, mTranslationZ); + } else { renderer.concatMatrix(mTransform); + } + } else { + // avoid setting translationZ, use SkMatrix + if (mMatrixFlags == TRANSLATION) { + renderer.translate(mTranslationX, mTranslationY, 0); } else { renderer.concatMatrix(mTransformMatrix); } |