From cf8d9d4af3faecd804763d7c6f85b3f8741e180b Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Thu, 16 Jan 2014 14:48:54 -0800 Subject: [PATCH] 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 --- libs/hwui/DisplayList.cpp | 13 +++++++++---- 1 file 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); } -- 2.11.0