Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / mojo / services / public / interfaces / surfaces / quads.mojom
index 6c2eb64..6fa2790 100644 (file)
@@ -18,7 +18,33 @@ struct DebugBorderQuadState {};
 
 struct IoSurfaceContentQuadState {};
 
-struct RenderPassQuadState {};
+struct RenderPassId {
+  int32 layer_id;
+  int32 index;
+};
+
+struct RenderPassQuadState {
+  RenderPassId render_pass_id;
+
+  // If nonzero, resource id of mask to use when drawing this pass.
+  uint32 mask_resource_id;
+  RectF mask_uv_rect;
+
+  // Post-processing filters, applied to the pixels in the render pass' texture.
+  // TODO(jamesr): Support
+  // FilterOperations filters;
+
+  // The scale from layer space of the root layer of the render pass to
+  // the render pass physical pixels. This scale is applied to the filter
+  // parameters for pixel-moving filters. This scale should include
+  // content-to-target-space scale, and device pixel ratio.
+  PointF filters_scale;
+
+  // Post-processing filters, applied to the pixels showing through the
+  // background of the render pass, from behind it.
+  // TODO(jamesr): Support
+  // FilterOperations background_filters;
+};
 
 struct SolidColorQuadState {
   Color color;
@@ -32,18 +58,35 @@ struct SurfaceQuadState {
 struct TextureQuadState {
   uint32 resource_id;
   bool premultiplied_alpha;
-  mojo.PointF uv_top_left;
-  mojo.PointF uv_bottom_right;
+  PointF uv_top_left;
+  PointF uv_bottom_right;
   Color background_color;
   float[4] vertex_opacity;
   bool flipped;
 };
 
-struct TiledContentQuadState {};
+struct TileQuadState {
+  RectF tex_coord_rect;
+  Size texture_size;
+  bool swizzle_contents;
+  uint32 resource_id;
+};
 
 struct StreamVideoQuadState {};
 
-struct YUVVideoQuadState {};
+enum YUVColorSpace {
+  REC_601,       // SDTV standard with restricted "studio swing" color range.
+  REC_601_JPEG,  // Full color range [0, 255] variant of the above.
+};
+
+struct YUVVideoQuadState {
+  RectF tex_coord_rect;
+  uint32 y_plane_resource_id;
+  uint32 u_plane_resource_id;
+  uint32 v_plane_resource_id;
+  uint32 a_plane_resource_id;
+  YUVColorSpace color_space;
+};
 
 enum Material {
   CHECKERBOARD = 1,
@@ -64,15 +107,15 @@ struct Quad {
 
   // This rect, after applying the quad_transform(), gives the geometry that
   // this quad should draw to. This rect lives in content space.
-  mojo.Rect rect;
+  Rect rect;
 
   // This specifies the region of the quad that is opaque. This rect lives in
   // content space.
-  mojo.Rect opaque_rect;
+  Rect opaque_rect;
 
   // Allows changing the rect that gets drawn to make it smaller. This value
   // should be clipped to |rect|. This rect lives in content space.
-  mojo.Rect visible_rect;
+  Rect visible_rect;
 
   // Allows changing the rect that gets drawn to make it smaller. This value
   // should be clipped to |rect|. This rect lives in content space.
@@ -83,16 +126,16 @@ struct Quad {
   int32 shared_quad_state_index;
 
   // Only one of the following will be set, depending on the material.
-  CheckerboardQuadState checkerboard_quad_state;
-  DebugBorderQuadState debug_border_quad_state;
-  IoSurfaceContentQuadState io_surface_quad_state;
-  RenderPassQuadState render_pass_quad_state;
-  SolidColorQuadState solid_color_quad_state;
-  SurfaceQuadState surface_quad_state;
-  TextureQuadState texture_quad_state;
-  TiledContentQuadState tiled_content_quad_state;
-  StreamVideoQuadState stream_video_quad_state;
-  YUVVideoQuadState yuv_video_quad_state;
+  CheckerboardQuadState? checkerboard_quad_state;
+  DebugBorderQuadState? debug_border_quad_state;
+  IoSurfaceContentQuadState? io_surface_quad_state;
+  RenderPassQuadState? render_pass_quad_state;
+  SolidColorQuadState? solid_color_quad_state;
+  SurfaceQuadState? surface_quad_state;
+  TextureQuadState? texture_quad_state;
+  TileQuadState? tile_quad_state;
+  StreamVideoQuadState? stream_video_quad_state;
+  YUVVideoQuadState? yuv_video_quad_state;
 };
 
 enum SkXfermode {
@@ -137,16 +180,16 @@ enum SkXfermode {
 
 struct SharedQuadState {
   // Transforms from quad's original content space to its target content space.
-  mojo.Transform content_to_target_transform;
+  Transform content_to_target_transform;
 
   // This size lives in the content space for the quad's originating layer.
-  mojo.Size content_bounds;
+  Size content_bounds;
 
   // This rect lives in the content space for the quad's originating layer.
-  mojo.Rect visible_content_rect;
+  Rect visible_content_rect;
 
   // This rect lives in the target content space.
-  mojo.Rect clip_rect;
+  Rect clip_rect;
 
   bool is_clipped;
   float opacity;
@@ -156,9 +199,9 @@ struct SharedQuadState {
 
 struct Pass {
   int32 id;
-  mojo.Rect output_rect;
-  mojo.Rect damage_rect;
-  mojo.Transform transform_to_root_target;
+  Rect output_rect;
+  Rect damage_rect;
+  Transform transform_to_root_target;
   bool has_transparent_background;
   Quad[] quads;
   SharedQuadState[] shared_quad_states;