diff options
| author | 2014-04-23 21:39:06 +0000 | |
|---|---|---|
| committer | 2014-04-23 21:39:07 +0000 | |
| commit | 3c37bcee9b241d9ee5c420e9e16dca236e8a0304 (patch) | |
| tree | 302025886c823020ec607f26d600b95d7d1401d8 /libs/hwui/RenderNode.cpp | |
| parent | 1b244f44a796484866f13e0639420477c3191695 (diff) | |
| parent | e0bb87d4bdbd3b08ab6a8569c8e564ed59b8a5a7 (diff) | |
Merge "Fix translationZ matrix computation"
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
| -rw-r--r-- | libs/hwui/RenderNode.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index cf218347ee2a..9aa47a3b2529 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -26,6 +26,7 @@ #include "Debug.h" #include "DisplayListOp.h" #include "DisplayListLogBuffer.h" +#include "utils/MathUtils.h" namespace android { namespace uirenderer { @@ -217,7 +218,9 @@ void RenderNode::applyViewPropertyTransforms(mat4& matrix, bool true3dTransform) mat4 anim(*properties().getAnimationMatrix()); matrix.multiply(anim); } - if (properties().hasTransformMatrix()) { + + bool applyTranslationZ = true3dTransform && !MathUtils::isZero(properties().getTranslationZ()); + if (properties().hasTransformMatrix() || applyTranslationZ) { if (properties().isTransformTranslateOnly()) { matrix.translate(properties().getTranslationX(), properties().getTranslationY(), true3dTransform ? properties().getTranslationZ() : 0.0f); @@ -391,7 +394,7 @@ void RenderNode::buildZSortedChildList(Vector<ZDrawDisplayListOpPair>& zTranslat RenderNode* child = childOp->mDisplayList; float childZ = child->properties().getTranslationZ(); - if (childZ != 0.0f) { + if (!MathUtils::isZero(childZ)) { zTranslatedNodes.add(ZDrawDisplayListOpPair(childZ, childOp)); childOp->mSkipInOrderDraw = true; } else if (!child->properties().getProjectBackwards()) { |