diff options
author | Diego Perez <diegoperez@google.com> | 2015-06-15 10:03:58 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-06-15 10:03:58 +0000 |
commit | df6f63badfe2572284dad8e34f152fd1c24a873e (patch) | |
tree | 2be5bd8500e8ae8d212cd22a613e84b48d70918c /tools | |
parent | d717682df97e812d4a25f93b0c9e84548767d8e1 (diff) | |
parent | 2422011d867f4d4516605148641bbeb7d9c2501b (diff) | |
download | frameworks_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.java | 15 |
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 |