diff options
Diffstat (limited to 'misc/proto/style.proto')
-rw-r--r-- | misc/proto/style.proto | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/misc/proto/style.proto b/misc/proto/style.proto new file mode 100644 index 0000000000..90e5b65061 --- /dev/null +++ b/misc/proto/style.proto @@ -0,0 +1,110 @@ +enum bucket_type { + fill = 1; + line = 2; + point = 3; + + background = 15; +} + +enum cap_type { + round_cap = 1; + butt_cap = 2; + square_cap = 3; +} + +enum join_type { + miter_join = 1; + bevel_join = 2; + round_join = 3; +} + +enum winding_type { + evenodd = 1; + nonzero = 2; +} + +enum property_type { + null = 1; + constant = 2; + stops = 3; + linear = 4; +} + +message value { + // Exactly one of these values may be present in a valid message + optional string string_value = 1; + optional float float_value = 2; + optional double double_value = 3; + optional int64 int_value = 4; + optional uint64 uint_value = 5; + optional sint64 sint_value = 6; + optional bool bool_value = 7; + + extensions 8 to max; +} + +message bucket { + required string name = 1; + required bucket_type type = 2; + + // Specify what data to pull into this bucket + required string source_name = 3; + required string source_layer = 4; + optional string source_field = 5; + repeated value source_value = 6; + + // Specifies how the geometry for this bucket should be created + optional cap_type cap = 7; + optional join_type join = 8; + optional string font = 9; + optional float font_size = 10; +} + +message layer { + required string name = 1; + optional string bucket_name = 2; + repeated layer child_layer = 3; +} + +message property { + required property_type function = 1; + repeated float value = 2 [ packed = true ]; +} + +message fill_style { + required string layer_name = 1; + optional property hidden = 2; + optional winding_type winding = 3 [ default = nonzero ]; + optional property antialias = 4; + optional fixed32 fill_color = 5 [ default = 0x000000FF ]; // rgba (=> rgb << 8 | 0xFF for opaque!) + optional fixed32 stroke_color = 6; // if none is specified, no stroke will be painted + optional property opacity = 7; // values from 0..1 + optional string image = 8; + // TODO: translate x/y +} + +message stroke_style { + required string layer_name = 1; + optional property hidden = 2; + optional fixed32 color = 3 [ default = 0x000000FF ]; // rgba (=> rgb << 8 | 0xFF for opaque!) + optional property width = 4; + optional property offset = 5; + optional property opacity = 6; // values from 0..1 + // line join + line cap are already defined in the + // TODO: dasharray + // TODO: image/icon + // TODO: translate x/y +} + +message class { + required string name = 1; + repeated fill_style fill = 2; + repeated stroke_style stroke = 3; +} + +// root level object +message style { + repeated bucket bucket = 1; + repeated layer layer = 2; + repeated class class = 3; +} |