Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Unified Diff: cc/layers/video_layer_impl.cc

Issue 1142343008: cc: Rework overlays to not use the ResourceProvider and pass texture size (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix more tests Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/layers/video_layer_impl.cc
diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc
index 754a2f25abb3248ee5e280003bf453f24c8c47b5..eb9eaca648a38e71e3403667572662d22bfb6c04 100644
--- a/cc/layers/video_layer_impl.cc
+++ b/cc/layers/video_layer_impl.cc
@@ -125,7 +125,9 @@ bool VideoLayerImpl::WillDraw(DrawMode draw_mode,
external_resources.mailboxes[i],
SingleReleaseCallbackImpl::Create(
external_resources.release_callbacks[i]));
- frame_resources_.push_back(resource_id);
+ frame_resources_.push_back(FrameResource(
+ resource_id, external_resources.mailboxes[i].size_in_pixels(),
+ external_resources.mailboxes[i].allow_overlay()));
}
return true;
@@ -271,8 +273,10 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
yuv_video_quad->SetNew(
shared_quad_state, quad_rect, opaque_rect, visible_quad_rect,
ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, uv_tex_size,
- frame_resources_[0], frame_resources_[1], frame_resources_[2],
- frame_resources_.size() > 3 ? frame_resources_[3] : 0, color_space);
+ frame_resources_[0].id, frame_resources_[1].id,
+ frame_resources_[2].id,
+ frame_resources_.size() > 3 ? frame_resources_[3].id : 0,
+ color_space);
ValidateQuadResources(yuv_video_quad);
break;
}
@@ -290,17 +294,10 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
bool nearest_neighbor = false;
TextureDrawQuad* texture_quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
- texture_quad->SetNew(shared_quad_state,
- quad_rect,
- opaque_rect,
- visible_quad_rect,
- frame_resources_[0],
- premultiplied_alpha,
- uv_top_left,
- uv_bottom_right,
- SK_ColorTRANSPARENT,
- opacity,
- flipped,
+ texture_quad->SetNew(shared_quad_state, quad_rect, opaque_rect,
+ visible_quad_rect, frame_resources_[0].id,
+ premultiplied_alpha, uv_top_left, uv_bottom_right,
+ SK_ColorTRANSPARENT, opacity, flipped,
nearest_neighbor);
ValidateQuadResources(texture_quad);
break;
@@ -315,7 +312,8 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
render_pass->CreateAndAppendDrawQuad<StreamVideoDrawQuad>();
stream_video_quad->SetNew(
shared_quad_state, quad_rect, opaque_rect, visible_quad_rect,
- frame_resources_[0],
+ frame_resources_[0].id, frame_resources_[0].size_in_pixels,
+ frame_resources_[0].allow_overlay,
scale * provider_client_impl_->StreamTextureMatrix());
ValidateQuadResources(stream_video_quad);
break;
@@ -326,12 +324,9 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
break;
IOSurfaceDrawQuad* io_surface_quad =
render_pass->CreateAndAppendDrawQuad<IOSurfaceDrawQuad>();
- io_surface_quad->SetNew(shared_quad_state,
- quad_rect,
- opaque_rect,
- visible_quad_rect,
- visible_rect.size(),
- frame_resources_[0],
+ io_surface_quad->SetNew(shared_quad_state, quad_rect, opaque_rect,
+ visible_quad_rect, visible_rect.size(),
+ frame_resources_[0].id,
IOSurfaceDrawQuad::UNFLIPPED);
ValidateQuadResources(io_surface_quad);
break;
@@ -383,7 +378,7 @@ void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) {
software_release_callback_.Reset();
} else {
for (size_t i = 0; i < frame_resources_.size(); ++i)
- resource_provider->DeleteResource(frame_resources_[i]);
+ resource_provider->DeleteResource(frame_resources_[i].id);
frame_resources_.clear();
}

Powered by Google App Engine
This is Rietveld 408576698