diff options
author | halliwell <halliwell@chromium.org> | 2015-05-13 09:27:21 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-13 16:27:32 +0000 |
commit | 9e2b43aee24f3a9827e05d34578ba9a747236cd5 (patch) | |
tree | 5e0aebdd03bd476c7f67f98c6b07b96ab6d03a64 /cc/layers/video_layer_impl.cc | |
parent | 4a44a2b9ce220eb5b7f82018a5d3df06d81807d2 (diff) | |
download | chromium_src-9e2b43aee24f3a9827e05d34578ba9a747236cd5.zip chromium_src-9e2b43aee24f3a9827e05d34578ba9a747236cd5.tar.gz chromium_src-9e2b43aee24f3a9827e05d34578ba9a747236cd5.tar.bz2 |
Add distinction between RGB and RGBA native texture video frame and resources
Currently it's impossible to place a NATIVE_TEXTURE VideoFrame into an
overlay, because:
* NATIVE_TEXTURE VideoFrame turns into RGB_RESOURCE in
VideoResourceUpdater
* RGB_RESOURCE always sets premultipled_alpha flag on its
TextureDrawQuad (see VideoLayerImpl::AppendQuads)
* OverlayStrategyCommon rejects quads with premultiplied alpha
BUG=
Review URL: https://codereview.chromium.org/1134643002
Cr-Commit-Position: refs/heads/master@{#329651}
Diffstat (limited to 'cc/layers/video_layer_impl.cc')
-rw-r--r-- | cc/layers/video_layer_impl.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc index 6f72b01..ae028d5 100644 --- a/cc/layers/video_layer_impl.cc +++ b/cc/layers/video_layer_impl.cc @@ -261,11 +261,13 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass, ValidateQuadResources(yuv_video_quad); break; } + case VideoFrameExternalResources::RGBA_RESOURCE: case VideoFrameExternalResources::RGB_RESOURCE: { DCHECK_EQ(frame_resources_.size(), 1u); if (frame_resources_.size() < 1u) break; - bool premultiplied_alpha = true; + bool premultiplied_alpha = + (frame_resource_type_ == VideoFrameExternalResources::RGBA_RESOURCE); gfx::PointF uv_top_left(0.f, 0.f); gfx::PointF uv_bottom_right(tex_width_scale, tex_height_scale); float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |