зеркало из https://github.com/mozilla/gecko-dev.git
222 строки
5.1 KiB
Protocol Buffer
222 строки
5.1 KiB
Protocol Buffer
/* vim:set ts=2 sw=2 sts=2 et: */
|
|
|
|
syntax = "proto2";
|
|
|
|
option optimize_for = LITE_RUNTIME;
|
|
|
|
package mozilla.layers.layerscope;
|
|
|
|
// ===============================
|
|
// Server to Client messages
|
|
// ===============================
|
|
message FramePacket {
|
|
optional uint64 value = 1;
|
|
optional float scale = 2;
|
|
}
|
|
|
|
message ColorPacket {
|
|
required uint64 layerref = 1;
|
|
optional uint32 width = 2;
|
|
optional uint32 height = 3;
|
|
optional uint32 color = 4;
|
|
}
|
|
|
|
message TexturePacket {
|
|
enum Filter {
|
|
GOOD = 0;
|
|
LINEAR = 1;
|
|
POINT = 2;
|
|
}
|
|
message Rect {
|
|
optional float x = 1;
|
|
optional float y = 2;
|
|
optional float w = 3;
|
|
optional float h = 4;
|
|
}
|
|
message Size {
|
|
optional int32 w = 1;
|
|
optional int32 h = 2;
|
|
}
|
|
message Matrix {
|
|
optional bool is2D = 1;
|
|
optional bool isId = 2;
|
|
repeated float m = 3;
|
|
}
|
|
message EffectMask {
|
|
optional bool mIs3D = 1;
|
|
optional Size mSize = 2;
|
|
optional Matrix mMaskTransform = 3;
|
|
}
|
|
|
|
// Basic info
|
|
required uint64 layerref = 1;
|
|
optional uint32 width = 2;
|
|
optional uint32 height = 3;
|
|
optional uint32 stride = 4;
|
|
optional uint32 name = 5;
|
|
optional uint32 target = 6;
|
|
optional uint32 dataformat = 7;
|
|
optional uint64 glcontext = 8;
|
|
optional bytes data = 9;
|
|
|
|
// TextureEffect attributes
|
|
optional Rect mTextureCoords = 10;
|
|
optional bool mPremultiplied = 11;
|
|
optional Filter mFilter = 12;
|
|
|
|
// Mask attributes
|
|
optional bool isMask = 20;
|
|
optional EffectMask mask = 21;
|
|
}
|
|
|
|
message LayersPacket {
|
|
message Layer {
|
|
enum LayerType {
|
|
UnknownLayer = 0;
|
|
LayerManager = 1;
|
|
ContainerLayer = 2;
|
|
PaintedLayer = 3;
|
|
CanvasLayer = 4;
|
|
ImageLayer = 5;
|
|
ColorLayer = 6;
|
|
RefLayer = 8;
|
|
ReadbackLayer = 9;
|
|
DisplayItemLayer = 10;
|
|
}
|
|
enum ScrollingDirect {
|
|
VERTICAL = 1;
|
|
HORIZONTAL = 2;
|
|
}
|
|
enum Filter {
|
|
FILTER_FAST = 0; // deprecated
|
|
FILTER_GOOD = 1;
|
|
FILTER_BEST = 2; // deprecated
|
|
FILTER_NEAREST = 3; //deprecated
|
|
FILTER_BILINEAR = 4; //deprecated
|
|
FILTER_GAUSSIAN = 5; //deprecated
|
|
FILTER_SENTINEL = 6; //deprecated
|
|
FILTER_LINEAR = 7;
|
|
FILTER_POINT = 8;
|
|
}
|
|
message Size {
|
|
optional int32 w = 1;
|
|
optional int32 h = 2;
|
|
}
|
|
message Rect {
|
|
optional int32 x = 1;
|
|
optional int32 y = 2;
|
|
optional int32 w = 3;
|
|
optional int32 h = 4;
|
|
}
|
|
message Region {
|
|
repeated Rect r = 1;
|
|
}
|
|
message Matrix {
|
|
optional bool is2D = 1;
|
|
optional bool isId = 2;
|
|
repeated float m = 3;
|
|
}
|
|
message Shadow {
|
|
optional Rect clip = 1;
|
|
optional Matrix transform = 2;
|
|
optional Region vRegion = 3;
|
|
}
|
|
|
|
// Basic info
|
|
// Note: Parent's pointer is used to recontruct the layer tree
|
|
required LayerType type = 1;
|
|
required uint64 ptr = 2;
|
|
required uint64 parentPtr = 3;
|
|
|
|
// Common info (10 to 99)
|
|
optional Rect clip = 10;
|
|
optional Matrix transform = 11;
|
|
optional Region vRegion = 12; // visible region
|
|
optional Shadow shadow = 13; // shadow info
|
|
optional float opacity = 14;
|
|
optional bool cOpaque = 15; // content opaque
|
|
optional bool cAlpha = 16; // component alpha
|
|
optional ScrollingDirect direct = 17;
|
|
optional uint64 barID = 18;
|
|
optional uint64 mask = 19; // mask layer
|
|
optional Region hitRegion = 20;
|
|
optional Region dispatchRegion = 21;
|
|
optional Region noActionRegion = 22;
|
|
optional Region hPanRegion = 23;
|
|
optional Region vPanRegion = 24;
|
|
|
|
// Specific info (100 to max)
|
|
// Painted Layer
|
|
optional Region valid = 100;
|
|
// Color Layer
|
|
optional uint32 color = 101;
|
|
// Canvas & Image Layer
|
|
optional Filter filter = 102;
|
|
// Ref Layer
|
|
optional uint64 refID = 103;
|
|
// Readback Layer
|
|
optional Size size = 104;
|
|
optional uint32 displayListLogLength = 105;
|
|
optional bytes displayListLog = 106;
|
|
}
|
|
repeated Layer layer = 1;
|
|
}
|
|
|
|
message MetaPacket {
|
|
optional bool composedByHwc = 1;
|
|
}
|
|
|
|
message DrawPacket {
|
|
message Rect {
|
|
required float x = 1;
|
|
required float y = 2;
|
|
required float w = 3;
|
|
required float h = 4;
|
|
}
|
|
|
|
required float offsetX = 1;
|
|
required float offsetY = 2;
|
|
repeated float mvMatrix = 3;
|
|
required uint32 totalRects = 4;
|
|
repeated Rect layerRect = 5;
|
|
required uint64 layerref = 6;
|
|
repeated uint32 texIDs = 7;
|
|
repeated Rect textureRect = 8;
|
|
}
|
|
|
|
// We only need to use this Packet.
|
|
// Other packet definitions are just type defines
|
|
message Packet {
|
|
enum DataType {
|
|
FRAMESTART = 1;
|
|
FRAMEEND = 2;
|
|
COLOR = 3;
|
|
TEXTURE = 4;
|
|
LAYERS = 5;
|
|
META = 6;
|
|
DRAW = 7;
|
|
}
|
|
required DataType type = 1;
|
|
|
|
optional FramePacket frame = 2;
|
|
optional ColorPacket color = 3;
|
|
optional TexturePacket texture = 4;
|
|
optional LayersPacket layers = 5;
|
|
optional MetaPacket meta = 6;
|
|
optional DrawPacket draw = 7;
|
|
}
|
|
|
|
|
|
// ===============================
|
|
// Client to Server messages
|
|
// ===============================
|
|
message CommandPacket {
|
|
enum CmdType {
|
|
NO_OP = 0;
|
|
LAYERS_TREE = 1;
|
|
LAYERS_BUFFER = 2;
|
|
}
|
|
required CmdType type = 1;
|
|
optional bool value = 2;
|
|
}
|