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

Commit d38e776a authored by Xavier Ducrohet's avatar Xavier Ducrohet
Browse files

LayoutLib: support for layers.

Layers require that drawing methods potentially
draw in more than one bitmaps.

To handle this this patch offers the following:
- move all drawing methods to use Drawable
- Drawables are now handled by GcSnapshot since
  its the one handling the layers
- moved Canvas_Delegate.createCustomGraphics to
  GcSnapshot which does not expose the Graphics2D
  objects anymore so its draw() methods are the only
  way to draw.
- handles creating layers in GcSnapshot.save() and
  blitting them in restore()

Other changes:
- Clean up the create/save API in GcSnapshot
- Fixed drawing bitmaps with alpha and other
  composite modes.

Change-Id: I1e230087493d044a10de71f4b6d29083e3f3bf64
parent 70119929
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<com.android.test.hwui.LayersActivity.LayersView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
</com.android.test.hwui.LayersActivity.LayersView>
+6 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<com.android.test.hwui.NewLayersActivity.LayersView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
</com.android.test.hwui.NewLayersActivity.LayersView>
+12 −12
Original line number Diff line number Diff line
@@ -33,11 +33,11 @@ public class LayersActivity extends Activity {
        setContentView(new LayersView(this));
    }

    static class LayersView extends View {
    public static class LayersView extends View {
        private Paint mLayerPaint;
        private final Paint mRectPaint;

        LayersView(Context c) {
        public LayersView(Context c) {
            super(c);

            mLayerPaint = new Paint();
+3 −3
Original line number Diff line number Diff line
@@ -31,11 +31,11 @@ public class NewLayersActivity extends Activity {
        setContentView(new LayersView(this));
    }

    static class LayersView extends View {
    public static class LayersView extends View {
        private Paint mLayerPaint;
        private final Paint mRectPaint;

        LayersView(Context c) {
        public LayersView(Context c) {
            super(c);

            mLayerPaint = new Paint();
+298 −455

File changed.

Preview size limit exceeded, changes collapsed.

Loading