Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Unified Diff: experimental/mojo/Skia.mojom

Issue 1644043003: SkMojo: test linking Skia against the Mojo SDK (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/mojo/Skia.mojom
diff --git a/experimental/mojo/Skia.mojom b/experimental/mojo/Skia.mojom
new file mode 100644
index 0000000000000000000000000000000000000000..a74ab37493cd4c56dc2a296e53cf8355bb2bff5c
--- /dev/null
+++ b/experimental/mojo/Skia.mojom
@@ -0,0 +1,474 @@
+// skia.mojom
+
+module SkiaMojo;
mtklein 2016/01/29 01:07:38 SkMojo seems like it'll fit well in the rest of ou
hal.canary 2016/01/29 17:58:30 done
+
+struct Picture {
+ array<uint8> data;
+ // array<CanvasCommand> commands;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+struct Paint {
+ PathEffect path_effect;
+ Shader shader;
+ Xfermode xfermode;
+ MaskFilter mask_filter;
+ ColorFilter color_filter;
+ Rasterizer rasterizer;
+ DrawLooper looper;
+ ImageFilter image_filter;
+ uint32 color;
+ float stroke_width;
+ float stroke_miter_limit;
+ uint32 flags;
+};
+
+enum FillType {
+ WINDING,
+ EVEN_ODD,
+ INVERSE_WINDING,
+ INVERSE_EVEN_ODD,
+};
+
+struct MovePathVerb {
+ float end_x;
+ float end_y;
+};
+
+struct LinePathVerb {
+ float end_x;
+ float end_y;
+};
+
+struct QuadPathVerb {
+ float control_x;
+ float control_y;
+ float end_x;
+ float end_y;
+};
+
+struct ConicPathVerb {
+ float control_x;
+ float control_y;
+ float end_x;
+ float end_y;
+ float weight;
+};
+
+struct CubicPathVerb {
+ float control_1_x;
+ float control_1_y;
+ float control_2_x;
+ float control_2_y;
+ float end_x;
+ float end_y;
+};
+
+struct ClosePathVerb {};
+
+union PathVerb {
+ MovePathVerb move;
+ LinePathVerb line;
+ QuadPathVerb quad;
+ ConicPathVerb conic;
+ CubicPathVerb cubic;
+ ClosePathVerb close;
+};
+
+struct Path {
+ array<PathVerb> verbs;
+};
+
+struct TextRun {
+ float text_size;
+ float text_scale_x;
+ float text_skew_x;
+ uint32 typeface;
+ uint32 flags;
+ float offset_x;
+ float offset_y;
+
+ array<uint16> glyphs;
+ array<float> positions;
+};
+
+struct TextBlob {
+ array<TextRun> runs;
+};
+
+
+struct PathEffect { string name; array<uint8> data; };
+struct Shader { string name; array<uint8> data; };
+struct Xfermode { string name; array<uint8> data; };
+struct MaskFilter { string name; array<uint8> data; };
+struct ColorFilter { string name; array<uint8> data; };
+struct Rasterizer { string name; array<uint8> data; };
+struct DrawLooper { string name; array<uint8> data; };
+struct ImageFilter { string name; array<uint8> data; };
+
+enum XfermodeMode {
+ CLEAR,
+ SRC,
+ DST,
+ SRC_OVER,
+ DST_OVER,
+ SRC_IN,
+ DST_IN,
+ SRC_OUT,
+ DST_OUT,
+ SRC_ATOP,
+ DST_ATOP,
+ XOR,
+ PLUS,
+ MODULATE,
+ SCREEN,
+ OVERLAY,
+ DARKEN,
+ LIGHTEN,
+ COLOR_DODGE,
+ COLOR_BURN,
+ HARD_LIGHT,
+ SOFT_LIGHT,
+ DIFFERENCE,
+ EXCLUSION,
+ MULTIPLY,
+ HUE,
+ SATURATION,
+ COLOR,
+ LUMINOSITY,
+};
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+struct SaveCommand {};
+
+struct RestoreCommand {};
+
+struct SaveLayerCommand {
+ float bounds_rect_left;
+ float bounds_rect_top;
+ float bounds_rect_right;
+ float bounds_rect_bottom;
+ Paint paint;
+ ImageFilter backdrop;
+ uint32 save_layer_flags;
+};
+
+struct SetMatrixCommand {
+ float matrix_scale_x;
+ float matrix_skew_x;
+ float matrix_trans_x;
+ float matrix_skew_y;
+ float matrix_scale_y;
+ float matrix_trans_y;
+ float matrix_persp_0;
+ float matrix_persp_1;
+ float matrix_persp_2;
+};
+
+struct DrawOvalCommand {
+ float oval_rect_left;
+ float oval_rect_top;
+ float oval_rect_right;
+ float oval_rect_bottom;
+ Paint paint;
+};
+
+struct DrawRectCommand {
+ float rect_left;
+ float rect_top;
+ float rect_right;
+ float rect_bottom;
+ Paint paint;
+};
+
+struct DrawRoundRectCommand {
+ float round_rect_left;
mtklein 2016/01/29 01:07:38 It'd be nice to read Rect rect; Corner ul; Corner
hal.canary 2016/01/29 17:58:30 code deleted for now. I'll add it as I can test i
+ float round_rect_top;
+ float round_rect_right;
+ float round_rect_bottom;
+ float round_rect_upper_left_x;
+ float round_rect_upper_left_y;
+ float round_rect_upper_right_x;
+ float round_rect_upper_right_y;
+ float round_rect_lower_right_x;
+ float round_rect_lower_right_y;
+ float round_rect_lower_left_x;
+ float round_rect_lower_left_y;
+ Paint paint;
+};
+
+struct DrawPathCommand {
+ uint32 path;
+ Paint paint;
+};
+
+struct DrawPaintCommand {
+ Paint paint;
+};
+
+enum PointMode {
+ POINTS,
+ LINES,
+ POLYGON,
+};
+
+struct DrawPointsCommand {
+ PointMode point_mode;
+ array<float> points; // x, y pairs
+ Paint paint;
+};
+
+struct DrawDrawableCommand {
+ uint32 drawable; // fixme
+ float matrix_scale_x;
mtklein 2016/01/29 01:07:38 Yes let's definitely factor. At least Rect and Ma
hal.canary 2016/01/29 17:58:30 code deleted for now. I'll add it as I can test i
+ float matrix_skew_x;
+ float matrix_trans_x;
+ float matrix_skew_y;
+ float matrix_scale_y;
+ float matrix_trans_y;
+ float matrix_persp_0;
+ float matrix_persp_1;
+ float matrix_persp_2;
+};
+
+struct DrawPictureCommand {
+ uint32 picture;
+ float matrix_scale_x;
+ float matrix_skew_x;
+ float matrix_trans_x;
+ float matrix_skew_y;
+ float matrix_scale_y;
+ float matrix_trans_y;
+ float matrix_persp_0;
+ float matrix_persp_1;
+ float matrix_persp_2;
+ Paint paint;
+};
+
+enum VertexMode {
+ TRIANGLES,
+ TRIANGLE_STRIP,
+ TRIANGLE_FAN
+};
+
+struct DrawVerticesCommand {
+ VertexMode vertex_mode;
+ array<float> vertices;
+ array<float> texs;
+ array<uint32> colors;
+ Xfermode xfermode;
+ array<uint16> indices;
+ Paint paint;
+};
+
+struct DrawPatchCommand {
+ float cubic_0_x;
mtklein 2016/01/29 01:07:38 Is this 3 coefficients for 4 cubics, no? Let's ma
hal.canary 2016/01/29 17:58:30 code deleted for now. I'll add it as I can test i
+ float cubic_0_y;
+ float cubic_1_x;
+ float cubic_1_y;
+ float cubic_2_x;
+ float cubic_2_y;
+ float cubic_3_x;
+ float cubic_3_y;
+ float cubic_4_x;
+ float cubic_4_y;
+ float cubic_5_x;
+ float cubic_5_y;
+ float cubic_6_x;
+ float cubic_6_y;
+ float cubic_7_x;
+ float cubic_7_y;
+ float cubic_8_x;
+ float cubic_8_y;
+ float cubic_9_x;
+ float cubic_9_y;
+ float cubic_10_x;
+ float cubic_10_y;
+ float cubic_11_x;
+ float cubic_11_y;
+ uint32 color_0;
+ uint32 color_1;
+ uint32 color_2;
+ uint32 color_3;
+ float tex_coords_0_x;
+ float tex_coords_0_y;
+ float tex_coords_1_x;
+ float tex_coords_1_y;
+ float tex_coords_2_x;
+ float tex_coords_2_y;
+ float tex_coords_3_x;
+ float tex_coords_3_y;
+ Xfermode xfermode;
+ Paint paint;
+};
+
+struct DrawAtlasCommand {
+ uint32 image;
+ array<float> rotation_and_scale_transforms;
+ array<float> rects;
+ array<uint32> colors;
+ XfermodeMode mode;
+ float cull_rect_left;
+ float cull_rect_top;
+ float cull_rect_right;
+ float cull_rect_bottom;
+ Paint paint;
+};
+
+struct DrawImageCommand {
+ uint32 image;
+ float left;
+ float top;
+ Paint paint;
+};
+
+enum SrcRectConstraint {
+ STRICT,
+ FAST,
+};
+
+struct DrawImageRectCommand {
+ uint32 image;
+ float src_rect_left;
+ float src_rect_top;
+ float src_rect_right;
+ float src_rect_bottom;
+ float dst_rect_left;
+ float dst_rect_top;
+ float dst_rect_right;
+ float dst_rect_bottom;
+ Paint paint;
+ SrcRectConstraint constraint;
+};
+struct DrawImageNineCommand {
+ uint32 image;
+ int32 center_rect_left;
+ int32 center_rect_top;
+ int32 center_rect_right;
+ int32 center_rect_bottom;
+ float dst_rect_left;
+ float dst_rect_top;
+ float dst_rect_right;
+ float dst_rect_bottom;
+ Paint paint;
+};
+struct DrawTextBlobCommand {
+ uint32 text_blob;
+ float x;
+ float y;
+ Paint paint;
+};
+
+enum ClipEdgeStyle {
+ HARD,
+ SOFT
+};
+
+enum RegionOp {
+ DIFFERENCE,
+ INTERSECT,
+ UNION,
+ XOR,
+ REVERSE_DIFFERENCE,
+ REPLACE,
+};
+
+struct ClipRectCommand {
+ float clip_rect_left;
+ float clip_rect_top;
+ float clip_rect_right;
+ float clip_rect_bottom;
+ RegionOp op;
+ ClipEdgeStyle edge_style;
+};
+struct ClipRoundRectCommand {
+ float round_rect_left;
+ float round_rect_top;
+ float round_rect_right;
+ float round_rect_bottom;
+ float round_rect_upper_left_x;
+ float round_rect_upper_left_y;
+ float round_rect_upper_right_x;
+ float round_rect_upper_right_y;
+ float round_rect_lower_right_x;
+ float round_rect_lower_right_y;
+ float round_rect_lower_left_x;
+ float round_rect_lower_left_y;
+ RegionOp op;
+ ClipEdgeStyle edge_style;
+};
+struct ClipPathCommand {
+ uint32 path;
+ RegionOp op;
+ ClipEdgeStyle edge_style;
+};
+struct ClipRegionCommand {
+ array<uint8> region;
+ RegionOp op;
+ ClipEdgeStyle edge_style;
+};
+
+/////////////////////
+
+struct DefineTypeface {
+ uint32 n;
+ array<uint8> typeface_data;
+};
+
+struct DefineImage {
+ uint32 n;
+ array<uint8> image_data;
+};
+
+struct DefineTextBlob {
+ uint32 n;
+ TextBlob b;
+};
+
+struct DefinePicture {
+ uint32 n;
+ Picture p;
+};
+
+struct DefinePath {
+ uint32 n;
+ Path p;
+};
+
+/////////////////////
+union CanvasCommand {
+ DefineImage define_image;
mtklein 2016/01/29 01:07:38 Let's hold off on anything Canvas doesn't actually
hal.canary 2016/01/29 17:58:30 code deleted for now. I'll add it as I can test i
+ DefinePath define_path;
+ DefinePicture define_picture;
+ DefineTextBlob define_text_blob;
+ DefineTypeface define_typeface;
+
+ SaveCommand save;
+ RestoreCommand restore;
+ SaveLayerCommand save_layer;
+ SetMatrixCommand set_matrix;
+
+ ClipRectCommand clip_rect;
+ ClipRoundRectCommand clip_round_rect;
+ ClipPathCommand clip_path;
+ ClipRegionCommand clip_region;
+
+ DrawOvalCommand draw_oval;
+ DrawRectCommand draw_rect;
+ DrawRoundRectCommand draw_round_rect;
+ DrawPathCommand draw_path;
+ DrawPaintCommand draw_paint;
+ DrawPointsCommand draw_points;
+ DrawDrawableCommand draw_drawable;
+ DrawPictureCommand draw_picture;
+ DrawVerticesCommand draw_vertices;
+ DrawPatchCommand draw_patch;
+ DrawAtlasCommand draw_atlas;
+ DrawImageCommand draw_image;
+ DrawImageRectCommand draw_image_rect;
+ DrawImageNineCommand draw_image_nine;
+ DrawTextBlobCommand draw_text_blob;
+};

Powered by Google App Engine
This is Rietveld 408576698