summaryrefslogtreecommitdiff
path: root/libs/hwui/BakedOpState.cpp
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2016-03-15 14:20:18 -0700
committer Chris Craik <ccraik@google.com> 2016-03-18 16:16:38 -0700
commit4c3980b6e43cc7c0541f54b8e7e2d9d6108be622 (patch)
treefb7ef61470ae490f58c2e20e8ded2552ac18b159 /libs/hwui/BakedOpState.cpp
parent83d0078f9571b3967ba73ca3651c60d55cd4096c (diff)
Handle unbounded drawPaint/drawGLFunction operations safely
bug:26591194 Also, revert to using current clip bounds as drawColor/drawPaint bounds for simplicity in new pipeline. Change-Id: I1a6b3f9716b564b46df41d57dfe14475fdd24de0
Diffstat (limited to 'libs/hwui/BakedOpState.cpp')
-rw-r--r--libs/hwui/BakedOpState.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/hwui/BakedOpState.cpp b/libs/hwui/BakedOpState.cpp
index 26653f77daeb..859036543b4a 100644
--- a/libs/hwui/BakedOpState.cpp
+++ b/libs/hwui/BakedOpState.cpp
@@ -82,6 +82,16 @@ ResolvedRenderState::ResolvedRenderState(LinearAllocator& allocator, Snapshot& s
}
}
+ResolvedRenderState::ResolvedRenderState(LinearAllocator& allocator, Snapshot& snapshot,
+ const Matrix4& localTransform, const ClipBase* localClip) {
+ transform.loadMultiply(*snapshot.transform, localTransform);
+ clipState = snapshot.mutateClipArea().serializeIntersectedClip(allocator,
+ localClip, *(snapshot.transform));
+ clippedBounds = clipState->rect;
+ clipSideFlags = OpClipSideFlags::Full;
+ localProjectionPathMask = nullptr;
+}
+
ResolvedRenderState::ResolvedRenderState(LinearAllocator& allocator, Snapshot& snapshot)
: transform(*snapshot.transform)
, clipState(snapshot.mutateClipArea().serializeClip(allocator))