diff options
author | Romain Guy <romainguy@google.com> | 2012-01-17 11:30:22 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-01-17 11:30:22 -0800 |
commit | f56945e06aed28041f0f370c26b4b8986033c489 (patch) | |
tree | ac61ab847951283cb992f8d8471dec5067bfef30 /core | |
parent | 2b2422dc4e1a8bc0467990e5d14c97efa98c4fb3 (diff) | |
parent | 7677d8f006b94c76dcad6f551bf14f983f58dc14 (diff) | |
download | frameworks_base-f56945e06aed28041f0f370c26b4b8986033c489.zip frameworks_base-f56945e06aed28041f0f370c26b4b8986033c489.tar.gz frameworks_base-f56945e06aed28041f0f370c26b4b8986033c489.tar.bz2 |
Merge "Improve GLES20Canvas clip support"
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/GLES20Canvas.java | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index 8a9be85..700d3df 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -61,6 +61,7 @@ class GLES20Canvas extends HardwareCanvas { private final float[] mLine = new float[4]; private final Rect mClipBounds = new Rect(); + private final RectF mPathBounds = new RectF(); private DrawFilter mFilter; @@ -406,12 +407,18 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean clipPath(Path path) { - throw new UnsupportedOperationException(); + // TODO: Implement + path.computeBounds(mPathBounds, true); + return nClipRect(mRenderer, mPathBounds.left, mPathBounds.top, + mPathBounds.right, mPathBounds.bottom, Region.Op.INTERSECT.nativeInt); } @Override public boolean clipPath(Path path, Region.Op op) { - throw new UnsupportedOperationException(); + // TODO: Implement + path.computeBounds(mPathBounds, true); + return nClipRect(mRenderer, mPathBounds.left, mPathBounds.top, + mPathBounds.right, mPathBounds.bottom, op.nativeInt); } @Override @@ -459,12 +466,18 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean clipRegion(Region region) { - throw new UnsupportedOperationException(); + // TODO: Implement + region.getBounds(mClipBounds); + return nClipRect(mRenderer, mClipBounds.left, mClipBounds.top, + mClipBounds.right, mClipBounds.bottom, Region.Op.INTERSECT.nativeInt); } @Override public boolean clipRegion(Region region, Region.Op op) { - throw new UnsupportedOperationException(); + // TODO: Implement + region.getBounds(mClipBounds); + return nClipRect(mRenderer, mClipBounds.left, mClipBounds.top, + mClipBounds.right, mClipBounds.bottom, op.nativeInt); } @Override @@ -484,12 +497,14 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean quickReject(Path path, EdgeType type) { - throw new UnsupportedOperationException(); + path.computeBounds(mPathBounds, true); + return nQuickReject(mRenderer, mPathBounds.left, mPathBounds.top, + mPathBounds.right, mPathBounds.bottom, type.nativeInt); } @Override public boolean quickReject(RectF rect, EdgeType type) { - return quickReject(rect.left, rect.top, rect.right, rect.bottom, type); + return nQuickReject(mRenderer, rect.left, rect.top, rect.right, rect.bottom, type.nativeInt); } /////////////////////////////////////////////////////////////////////////// |