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

Commit 1cc982e9 authored by Nicolas Roard's avatar Nicolas Roard Committed by Android (Google) Code Review
Browse files

Merge "Import draw commands" into main

parents dad0862b c5fa24b2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@ import java.util.List;
 * Interface for the companion operations
 */
public interface CompanionOperation {
    /**
     * Read, create and add instance to operations
     * @param buffer data to read to create operation
     * @param operations command is to be added
     */
    void read(WireBuffer buffer, List<Operation> operations);

    // Debugging / Documentation utility functions
+1 −0
Original line number Diff line number Diff line
@@ -331,6 +331,7 @@ public class CoreDocument {
    public void initFromBuffer(RemoteComposeBuffer buffer) {
        mOperations = new ArrayList<Operation>();
        buffer.inflateFromBuffer(mOperations);
        mBuffer = buffer;
    }

    /**
+67 −0
Original line number Diff line number Diff line
@@ -17,8 +17,29 @@ package com.android.internal.widget.remotecompose.core;

import com.android.internal.widget.remotecompose.core.operations.BitmapData;
import com.android.internal.widget.remotecompose.core.operations.ClickArea;
import com.android.internal.widget.remotecompose.core.operations.ClipPath;
import com.android.internal.widget.remotecompose.core.operations.ClipRect;
import com.android.internal.widget.remotecompose.core.operations.DrawArc;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmap;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt;
import com.android.internal.widget.remotecompose.core.operations.DrawCircle;
import com.android.internal.widget.remotecompose.core.operations.DrawLine;
import com.android.internal.widget.remotecompose.core.operations.DrawOval;
import com.android.internal.widget.remotecompose.core.operations.DrawPath;
import com.android.internal.widget.remotecompose.core.operations.DrawRect;
import com.android.internal.widget.remotecompose.core.operations.DrawRoundRect;
import com.android.internal.widget.remotecompose.core.operations.DrawTextOnPath;
import com.android.internal.widget.remotecompose.core.operations.DrawTextRun;
import com.android.internal.widget.remotecompose.core.operations.DrawTweenPath;
import com.android.internal.widget.remotecompose.core.operations.Header;
import com.android.internal.widget.remotecompose.core.operations.MatrixRestore;
import com.android.internal.widget.remotecompose.core.operations.MatrixRotate;
import com.android.internal.widget.remotecompose.core.operations.MatrixSave;
import com.android.internal.widget.remotecompose.core.operations.MatrixScale;
import com.android.internal.widget.remotecompose.core.operations.MatrixSkew;
import com.android.internal.widget.remotecompose.core.operations.MatrixTranslate;
import com.android.internal.widget.remotecompose.core.operations.PaintData;
import com.android.internal.widget.remotecompose.core.operations.PathData;
import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior;
import com.android.internal.widget.remotecompose.core.operations.RootContentDescription;
import com.android.internal.widget.remotecompose.core.operations.TextData;
@@ -48,7 +69,30 @@ public class Operations {
    public static final int DATA_BITMAP = 101;
    public static final int DATA_TEXT = 102;

/////////////////////////////=====================
    public static final int CLIP_PATH = 38;
    public static final int CLIP_RECT = 39;
    public static final int PAINT_VALUES = 40;
    public static final int DRAW_RECT = 42;
    public static final int DRAW_TEXT_RUN = 43;
    public static final int DRAW_CIRCLE = 46;
    public static final int DRAW_LINE = 47;
    public static final int DRAW_ROUND_RECT = 51;
    public static final int DRAW_ARC = 52;
    public static final int DRAW_TEXT_ON_PATH = 53;
    public static final int DRAW_OVAL = 56;
    public static final int DATA_PATH = 123;
    public static final int DRAW_PATH = 124;
    public static final int DRAW_TWEEN_PATH = 125;
    public static final int MATRIX_SCALE = 126;
    public static final int MATRIX_TRANSLATE = 127;
    public static final int MATRIX_SKEW = 128;
    public static final int MATRIX_ROTATE = 129;
    public static final int MATRIX_SAVE = 130;
    public static final int MATRIX_RESTORE = 131;
    public static final int MATRIX_SET = 132;

    /////////////////////////////////////////======================
    public static IntMap<CompanionOperation> map = new IntMap<>();

    static {
@@ -60,6 +104,29 @@ public class Operations {
        map.put(CLICK_AREA, ClickArea.COMPANION);
        map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior.COMPANION);
        map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription.COMPANION);

        map.put(DRAW_ARC, DrawArc.COMPANION);
        map.put(DRAW_BITMAP, DrawBitmap.COMPANION);
        map.put(DRAW_CIRCLE, DrawCircle.COMPANION);
        map.put(DRAW_LINE, DrawLine.COMPANION);
        map.put(DRAW_OVAL, DrawOval.COMPANION);
        map.put(DRAW_PATH, DrawPath.COMPANION);
        map.put(DRAW_RECT, DrawRect.COMPANION);
        map.put(DRAW_ROUND_RECT, DrawRoundRect.COMPANION);
        map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath.COMPANION);
        map.put(DRAW_TEXT_RUN, DrawTextRun.COMPANION);
        map.put(DRAW_TWEEN_PATH, DrawTweenPath.COMPANION);
        map.put(DATA_PATH, PathData.COMPANION);
        map.put(PAINT_VALUES, PaintData.COMPANION);
        map.put(MATRIX_RESTORE, MatrixRestore.COMPANION);
        map.put(MATRIX_ROTATE, MatrixRotate.COMPANION);
        map.put(MATRIX_SAVE, MatrixSave.COMPANION);
        map.put(MATRIX_SCALE, MatrixScale.COMPANION);
        map.put(MATRIX_SKEW, MatrixSkew.COMPANION);
        map.put(MATRIX_TRANSLATE, MatrixTranslate.COMPANION);
        map.put(CLIP_PATH, ClipPath.COMPANION);
        map.put(CLIP_RECT, ClipRect.COMPANION);

    }

}
+68 −3
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.internal.widget.remotecompose.core;

import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;

/**
 * Specify an abstract paint context used by RemoteCompose commands to draw
 */
@@ -35,6 +37,69 @@ public abstract class PaintContext {
                                    int cdId);

    public abstract void scale(float scaleX, float scaleY);

    public abstract void translate(float translateX, float translateY);

    public abstract void drawArc(float left,
                                 float top,
                                 float right,
                                 float bottom,
                                 float startAngle,
                                 float sweepAngle);

    public abstract void drawBitmap(int id, float left, float top, float right, float bottom);

    public abstract void drawCircle(float centerX, float centerY, float radius);

    public abstract void drawLine(float x1, float y1, float x2, float y2);

    public abstract void drawOval(float left, float top, float right, float bottom);

    public abstract void drawPath(int id, float start, float end);

    public abstract void drawRect(float left, float top, float right, float bottom);

    public abstract void drawRoundRect(float left,
                                       float top,
                                       float right,
                                       float bottom,
                                       float radiusX,
                                       float radiusY);

    public abstract void drawTextOnPath(int textId, int pathId, float hOffset, float vOffset);

    public abstract void drawTextRun(int textID,
                                     int start,
                                     int end,
                                     int contextStart,
                                     int contextEnd,
                                     float x,
                                     float y,
                                     boolean rtl);

    public abstract void drawTweenPath(int path1Id,
                                       int path2Id,
                                       float tween,
                                       float start,
                                       float stop);

    public abstract void applyPaint(PaintBundle mPaintData);

    public abstract void mtrixScale(float scaleX, float scaleY, float centerX, float centerY);

    public abstract void matrixTranslate(float translateX, float translateY);

    public abstract void matrixSkew(float skewX, float skewY);

    public abstract void matrixRotate(float rotate, float pivotX, float pivotY);

    public abstract void matrixSave();

    public abstract void matrixRestore();

    public abstract void clipRect(float left, float top, float right, float bottom);

    public abstract void clipPath(int pathId, int regionOp);

}
+3 −0
Original line number Diff line number Diff line
@@ -20,5 +20,8 @@ package com.android.internal.widget.remotecompose.core;
 */
public interface Platform {
    byte[] imageToByteArray(Object image);
    int getImageWidth(Object image);
    int getImageHeight(Object image);
    float[] pathToFloatArray(Object image);
}
Loading