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;
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,
// 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.
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 {
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;
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;