summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDiego Perez <diegoperez@google.com>2015-06-15 10:03:58 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-15 10:03:58 +0000
commitdf6f63badfe2572284dad8e34f152fd1c24a873e (patch)
tree2be5bd8500e8ae8d212cd22a613e84b48d70918c /tools
parentd717682df97e812d4a25f93b0c9e84548767d8e1 (diff)
parent2422011d867f4d4516605148641bbeb7d9c2501b (diff)
downloadframeworks_base-df6f63badfe2572284dad8e34f152fd1c24a873e.zip
frameworks_base-df6f63badfe2572284dad8e34f152fd1c24a873e.tar.gz
frameworks_base-df6f63badfe2572284dad8e34f152fd1c24a873e.tar.bz2
am 2422011d: am b2411c62: am ead59b0d: Merge "Fix GcSnapshot drawInLayer when clipping is used." into lmp-mr1-dev
* commit '2422011d867f4d4516605148641bbeb7d9c2501b': Fix GcSnapshot drawInLayer when clipping is used.
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/GcSnapshot.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/GcSnapshot.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/GcSnapshot.java
index c34f9b5..a39eb4d 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/GcSnapshot.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/GcSnapshot.java
@@ -616,6 +616,8 @@ public class GcSnapshot {
return;
}
+ int x = 0;
+ int y = 0;
int width;
int height;
Rectangle clipBounds = originalGraphics.getClipBounds();
@@ -626,6 +628,8 @@ public class GcSnapshot {
}
// If we have clipBounds available, use them as they will always be
// smaller than the full layer size.
+ x = clipBounds.x;
+ y = clipBounds.y;
width = clipBounds.width;
height = clipBounds.height;
} else {
@@ -646,13 +650,20 @@ public class GcSnapshot {
true /*compositeOnly*/, forceMode);
try {
// The main draw operation.
+ // We translate the operation to take into account that the rendering does not
+ // know about the clipping area.
+ imageGraphics.translate(-x, -y);
drawable.draw(imageGraphics, paint);
// Apply the color filter.
+ // Restore the original coordinates system and apply the filter only to the
+ // clipped area.
+ imageGraphics.translate(x, y);
filter.applyFilter(imageGraphics, width, height);
- // Draw the tinted image on the main layer.
- configuredGraphics.drawImage(image, 0, 0, null);
+ // Draw the tinted image on the main layer using as start point the clipping
+ // upper left coordinates.
+ configuredGraphics.drawImage(image, x, y, null);
layer.change();
} finally {
// dispose Graphics2D objects