diff options
| author | 2016-03-15 14:20:18 -0700 | |
|---|---|---|
| committer | 2016-03-18 16:16:38 -0700 | |
| commit | 4c3980b6e43cc7c0541f54b8e7e2d9d6108be622 (patch) | |
| tree | fb7ef61470ae490f58c2e20e8ded2552ac18b159 /libs/hwui/BakedOpState.cpp | |
| parent | 83d0078f9571b3967ba73ca3651c60d55cd4096c (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.cpp | 10 |
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)) |