| Index: cc/layers/video_layer_impl.cc
|
| diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc
|
| index 11a4bde9df56e5c5cb6a7de6a780ee9569ac7eef..6bc876abd3b9fd18974094df66b10c0cedc41a25 100644
|
| --- a/cc/layers/video_layer_impl.cc
|
| +++ b/cc/layers/video_layer_impl.cc
|
| @@ -6,7 +6,6 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/logging.h"
|
| -#include "cc/layers/quad_sink.h"
|
| #include "cc/layers/video_frame_provider_client_impl.h"
|
| #include "cc/quads/io_surface_draw_quad.h"
|
| #include "cc/quads/stream_video_draw_quad.h"
|
| @@ -15,6 +14,7 @@
|
| #include "cc/resources/resource_provider.h"
|
| #include "cc/resources/single_release_callback.h"
|
| #include "cc/trees/layer_tree_impl.h"
|
| +#include "cc/trees/occlusion_tracker.h"
|
| #include "cc/trees/proxy.h"
|
| #include "media/base/video_frame.h"
|
|
|
| @@ -124,22 +124,27 @@ bool VideoLayerImpl::WillDraw(DrawMode draw_mode,
|
| return true;
|
| }
|
|
|
| -void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| - AppendQuadsData* append_quads_data) {
|
| +void VideoLayerImpl::AppendQuads(
|
| + RenderPass* render_pass,
|
| + const OcclusionTracker<LayerImpl>& occlusion_tracker,
|
| + AppendQuadsData* append_quads_data) {
|
| DCHECK(frame_.get());
|
|
|
| - SharedQuadState* shared_quad_state = quad_sink->CreateSharedQuadState();
|
| + SharedQuadState* shared_quad_state =
|
| + render_pass->CreateAndAppendSharedQuadState();
|
| PopulateSharedQuadState(shared_quad_state);
|
|
|
| - AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data);
|
| + AppendDebugBorderQuad(render_pass, shared_quad_state, append_quads_data);
|
|
|
| gfx::Rect quad_rect(content_bounds());
|
| gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
|
| gfx::Rect visible_rect = frame_->visible_rect();
|
| gfx::Size coded_size = frame_->coded_size();
|
|
|
| - gfx::Rect visible_quad_rect = quad_sink->UnoccludedContentRect(
|
| - this, quad_rect, draw_properties().target_space_transform);
|
| + gfx::Rect visible_quad_rect = occlusion_tracker.UnoccludedContentRect(
|
| + this->render_target(),
|
| + quad_rect,
|
| + draw_properties().target_space_transform);
|
| if (visible_quad_rect.IsEmpty())
|
| return;
|
|
|
| @@ -177,7 +182,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| SK_ColorTRANSPARENT,
|
| opacity,
|
| flipped);
|
| - quad_sink->Append(texture_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(texture_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| case VideoFrameExternalResources::YUV_RESOURCE: {
|
| @@ -202,7 +207,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| frame_resources_[2],
|
| frame_resources_.size() > 3 ? frame_resources_[3] : 0,
|
| color_space);
|
| - quad_sink->Append(yuv_video_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(yuv_video_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| case VideoFrameExternalResources::RGB_RESOURCE: {
|
| @@ -226,7 +231,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| SK_ColorTRANSPARENT,
|
| opacity,
|
| flipped);
|
| - quad_sink->Append(texture_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(texture_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| case VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE: {
|
| @@ -244,7 +249,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| visible_quad_rect,
|
| frame_resources_[0],
|
| scale * provider_client_impl_->stream_texture_matrix());
|
| - quad_sink->Append(stream_video_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(stream_video_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| case VideoFrameExternalResources::IO_SURFACE: {
|
| @@ -260,7 +265,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| visible_rect.size(),
|
| frame_resources_[0],
|
| IOSurfaceDrawQuad::UNFLIPPED);
|
| - quad_sink->Append(io_surface_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(io_surface_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| #if defined(VIDEO_HOLE)
|
| @@ -285,7 +290,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
|
| false,
|
| SK_ColorTRANSPARENT,
|
| true);
|
| - quad_sink->Append(solid_color_draw_quad.PassAs<DrawQuad>());
|
| + render_pass->AppendDrawQuad(solid_color_draw_quad.PassAs<DrawQuad>());
|
| break;
|
| }
|
| #endif // defined(VIDEO_HOLE)
|
|
|