271 lines
5.2 KiB
Protocol Buffer
271 lines
5.2 KiB
Protocol Buffer
|
/*
|
||
|
* Copyright 2018 Google Inc.
|
||
|
*
|
||
|
* Use of this source code is governed by a BSD-style license that can be
|
||
|
* found in the LICENSE file.
|
||
|
*/
|
||
|
|
||
|
syntax = "proto3";
|
||
|
|
||
|
package pvg;
|
||
|
|
||
|
enum ClipVerb {
|
||
|
INTERSECT = 0;
|
||
|
DIFFERENCE = 1;
|
||
|
}
|
||
|
|
||
|
message Point {
|
||
|
float x = 1;
|
||
|
float y = 2;
|
||
|
}
|
||
|
|
||
|
message Rect {
|
||
|
float left = 1;
|
||
|
float top = 2;
|
||
|
float right = 3;
|
||
|
float bottom = 4;
|
||
|
}
|
||
|
|
||
|
message Color {
|
||
|
float r = 1;
|
||
|
float g = 2;
|
||
|
float b = 3;
|
||
|
float a = 4; // default to 1.0
|
||
|
}
|
||
|
|
||
|
message Matrix33 {
|
||
|
// m11, m22, m33 default to 1.0
|
||
|
|
||
|
float m11 = 1; float m12 = 2; float m13 = 3;
|
||
|
float m21 = 4; float m22 = 5; float m23 = 6;
|
||
|
float m31 = 7; float m32 = 8; float m33 = 9;
|
||
|
}
|
||
|
|
||
|
message ClipArgs {
|
||
|
ClipVerb verb = 1;
|
||
|
bool is_aliased = 2;
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
enum BlendMode {
|
||
|
SRC_OVER = 0;
|
||
|
CLEAR = 1;
|
||
|
SRC = 2;
|
||
|
// ...
|
||
|
}
|
||
|
|
||
|
enum PaintStyle {
|
||
|
FILL = 0;
|
||
|
STROKE = 1;
|
||
|
HAIRLINE = 2;
|
||
|
}
|
||
|
|
||
|
enum FilterQuality {
|
||
|
NONE = 0;
|
||
|
LOW = 1;
|
||
|
MEDIUM = 2;
|
||
|
HIGH = 3;
|
||
|
}
|
||
|
|
||
|
message Paint {
|
||
|
PaintStyle style = 1;
|
||
|
FilterQuality filter_quality = 2;
|
||
|
BlendMode blend_mode = 3;
|
||
|
bool is_aliased = 4;
|
||
|
|
||
|
Color color = 5;
|
||
|
|
||
|
int32 shader = 6;
|
||
|
int32 color_filter = 7;
|
||
|
int32 mask_filter = 8;
|
||
|
int32 path_filter = 9;
|
||
|
int32 image_filter = 10;
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
enum Hinting {
|
||
|
NONE_Hinting = 0;
|
||
|
SLIGHT_Hinting = 1;
|
||
|
NORMAL_Hinting = 2;
|
||
|
FULL_Hinting = 3;
|
||
|
}
|
||
|
|
||
|
message Font {
|
||
|
int32 typeface = 1;
|
||
|
float size = 2;
|
||
|
float scale_x = 3; // default = 1.0
|
||
|
float skew_x = 4;
|
||
|
|
||
|
Hinting Hinting = 5;
|
||
|
|
||
|
bool force_autohinting = 6;
|
||
|
bool embedded_bitmaps = 7;
|
||
|
bool subpixel = 8;
|
||
|
bool linear_metrics = 9;
|
||
|
bool embolden = 10;
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
enum PathVerb {
|
||
|
MOVE = 0;
|
||
|
LINE = 1;
|
||
|
QUAD = 2;
|
||
|
CUBIC = 3;
|
||
|
CONIC = 4;
|
||
|
}
|
||
|
|
||
|
message PathData {
|
||
|
repeated PathVerb verbs = 1;
|
||
|
repeated float points = 2; // count must be even, and correspond to verbs
|
||
|
repeated float conic_weights = 3; // count must be == # conic verbs
|
||
|
}
|
||
|
|
||
|
message DefinePath {
|
||
|
uint32 id = 1;
|
||
|
PathData data = 2;
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
message DefineImage {
|
||
|
uint32 id = 1;
|
||
|
bytes encoded_data = 2;
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
enum TileMode {
|
||
|
CLAMP_TileMode = 0;
|
||
|
REPEAT_TileMode = 1;
|
||
|
MIRROR_TileMode = 2;
|
||
|
DECAL_TileMode = 3;
|
||
|
}
|
||
|
|
||
|
message GradientCommon {
|
||
|
repeated Color colors = 1;
|
||
|
repeated float positions = 2; // empty or count == colors.count
|
||
|
Matrix33 local_matrix = 3;
|
||
|
TileMode tile_mode = 4;
|
||
|
}
|
||
|
|
||
|
message LinearGradient {
|
||
|
Point p0 = 1;
|
||
|
Point p1 = 2;
|
||
|
GradientCommon common = 3;
|
||
|
}
|
||
|
|
||
|
message RadialGradient {
|
||
|
Point center = 1;
|
||
|
float radius = 2;
|
||
|
GradientCommon common = 3;
|
||
|
}
|
||
|
|
||
|
message ImageShader {
|
||
|
uint32 image_id = 1;
|
||
|
TileMode tile_mode_x = 2;
|
||
|
TileMode tile_mode_y = 3;
|
||
|
Matrix33 local_matrix = 4;
|
||
|
}
|
||
|
|
||
|
message DefineShader {
|
||
|
uint32 id = 1;
|
||
|
oneof type {
|
||
|
Color color = 2;
|
||
|
LinearGradient linear_gradient = 3;
|
||
|
RadialGradient radial_gradient = 4;
|
||
|
ImageShader image = 5;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////
|
||
|
|
||
|
message Save {}
|
||
|
|
||
|
message SaveLayer {
|
||
|
Rect bounds = 1;
|
||
|
Paint paint = 2;
|
||
|
// ...
|
||
|
}
|
||
|
|
||
|
message Restore {}
|
||
|
|
||
|
message Concat {
|
||
|
Matrix33 matrix = 1;
|
||
|
}
|
||
|
|
||
|
message ClipRect {
|
||
|
Rect rect = 1;
|
||
|
ClipArgs args = 2;
|
||
|
}
|
||
|
|
||
|
message ClipPath {
|
||
|
oneof path {
|
||
|
uint32 id = 1;
|
||
|
PathData data = 2;
|
||
|
}
|
||
|
ClipArgs args = 3;
|
||
|
}
|
||
|
|
||
|
message DrawPaint {
|
||
|
Paint paint = 1;
|
||
|
}
|
||
|
|
||
|
message DrawRect {
|
||
|
Rect rect = 1;
|
||
|
Paint paint = 2;
|
||
|
}
|
||
|
|
||
|
message DrawOval {
|
||
|
Rect oval = 1;
|
||
|
Paint paint = 2;
|
||
|
}
|
||
|
|
||
|
message DrawPath {
|
||
|
oneof path {
|
||
|
uint32 id = 1;
|
||
|
PathData data = 2;
|
||
|
}
|
||
|
Paint paint = 3;
|
||
|
}
|
||
|
|
||
|
message DrawImage {
|
||
|
uint32 id = 1;
|
||
|
Paint paint = 2;
|
||
|
}
|
||
|
|
||
|
message DrawText {
|
||
|
repeated uint32 glyphs = 1; // uint16? bytes?
|
||
|
repeated float pos_x = 2; // must match counts with glyphs
|
||
|
repeated float pos_y = 3; // must match counts with glyphs OR have 1 entry
|
||
|
|
||
|
Font font = 4;
|
||
|
Paint paint = 5;
|
||
|
}
|
||
|
|
||
|
message CanvasMsg {
|
||
|
oneof msg {
|
||
|
Save save = 1;
|
||
|
SaveLayer save_layer = 2;
|
||
|
Restore restore = 3;
|
||
|
|
||
|
Concat concat = 4;
|
||
|
|
||
|
ClipRect clip_rect = 5;
|
||
|
ClipPath clip_path = 6;
|
||
|
|
||
|
DrawPaint draw_paint = 7;
|
||
|
DrawRect draw_rect = 8;
|
||
|
DrawOval draw_oval = 9;
|
||
|
DrawPath draw_path = 10;
|
||
|
DrawImage draw_image = 11;
|
||
|
DrawText draw_text = 12;
|
||
|
|
||
|
DefineImage def_image = 13;
|
||
|
DefinePath def_path = 14;
|
||
|
DefineShader def_shader = 15;
|
||
|
}
|
||
|
}
|