Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc929e28 authored by Diego Perez's avatar Diego Perez Committed by Android Git Automerger
Browse files

am 40a216d9: am df6f63ba: am 2422011d: am b2411c62: am ead59b0d: Merge "Fix...

am 40a216d9: am df6f63ba: am 2422011d: am b2411c62: am ead59b0d: Merge "Fix GcSnapshot drawInLayer when clipping is used." into lmp-mr1-dev

* commit '40a216d9':
  Fix GcSnapshot drawInLayer when clipping is used.
parents d2161615 40a216d9
Loading
Loading
Loading
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -616,6 +616,8 @@ public class GcSnapshot {
                return;
                return;
            }
            }


            int x = 0;
            int y = 0;
            int width;
            int width;
            int height;
            int height;
            Rectangle clipBounds = originalGraphics.getClipBounds();
            Rectangle clipBounds = originalGraphics.getClipBounds();
@@ -626,6 +628,8 @@ public class GcSnapshot {
                }
                }
                // If we have clipBounds available, use them as they will always be
                // If we have clipBounds available, use them as they will always be
                // smaller than the full layer size.
                // smaller than the full layer size.
                x = clipBounds.x;
                y = clipBounds.y;
                width = clipBounds.width;
                width = clipBounds.width;
                height = clipBounds.height;
                height = clipBounds.height;
            } else {
            } else {
@@ -646,13 +650,20 @@ public class GcSnapshot {
                    true /*compositeOnly*/, forceMode);
                    true /*compositeOnly*/, forceMode);
            try {
            try {
                // The main draw operation.
                // 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);
                drawable.draw(imageGraphics, paint);


                // Apply the color filter.
                // 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);
                filter.applyFilter(imageGraphics, width, height);


                // Draw the tinted image on the main layer.
                // Draw the tinted image on the main layer using as start point the clipping
                configuredGraphics.drawImage(image, 0, 0, null);
                // upper left coordinates.
                configuredGraphics.drawImage(image, x, y, null);
                layer.change();
                layer.change();
            } finally {
            } finally {
                // dispose Graphics2D objects
                // dispose Graphics2D objects