diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-17 06:10:06 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-17 06:10:06 +0000 |
commit | 35d7e967e7182a63a43eaa6d0e3d43e1b727879c (patch) | |
tree | 91d434fbb6e7055da188cf7caba462be08725833 /cc/video_layer_impl.cc | |
parent | a8883e454b594fbcc00b9d36a1958b6f85c0632d (diff) | |
download | chromium_src-35d7e967e7182a63a43eaa6d0e3d43e1b727879c.zip chromium_src-35d7e967e7182a63a43eaa6d0e3d43e1b727879c.tar.gz chromium_src-35d7e967e7182a63a43eaa6d0e3d43e1b727879c.tar.bz2 |
cc: Remove opaque flags from SharedQuadState and DrawQuad
Now we will use the opaqueRect (already present on DrawQuad) to tell when things
are opaque or not.
Each Quad constructor that can be opaque take an opaqueRect. Generally,
callers set it equal to the quadRect when contentsOpaque(). TiledLayerImpl can
set it to a smaller rect sometimes since it has more knowledge.
This made the scrollbar code a bit nicer for the thumb so that it doesn't need
to set needs_blending anymore, as the thumb can be marked non-opaque.
DebugBorderQuad sets an empty opaqueRect now, so it doesn't need to set
needs_blending.
Covered by existing tests.
BUG=152337
R=enne
Review URL: https://chromiumcodereview.appspot.com/11412044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168387 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/video_layer_impl.cc')
-rw-r--r-- | cc/video_layer_impl.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cc/video_layer_impl.cc b/cc/video_layer_impl.cc index 9930a0c..68a424c 100644 --- a/cc/video_layer_impl.cc +++ b/cc/video_layer_impl.cc @@ -200,6 +200,7 @@ void VideoLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad // otherwise synchonize use of all textures in the quad. gfx::Rect quadRect(gfx::Point(), contentBounds()); + gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); gfx::Rect visibleRect = m_frame->visible_rect(); gfx::Size codedSize = m_frame->coded_size(); @@ -217,7 +218,7 @@ void VideoLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad const FramePlane& vPlane = m_framePlanes[media::VideoFrame::kVPlane]; gfx::SizeF texScale(texWidthScale, texHeightScale); scoped_ptr<YUVVideoDrawQuad> yuvVideoQuad = YUVVideoDrawQuad::create( - sharedQuadState, quadRect, texScale, yPlane, uPlane, vPlane); + sharedQuadState, quadRect, opaqueRect, texScale, yPlane, uPlane, vPlane); quadSink.append(yuvVideoQuad.PassAs<DrawQuad>(), appendQuadsData); break; } @@ -227,7 +228,7 @@ void VideoLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad bool premultipliedAlpha = true; gfx::RectF uvRect(0, 0, texWidthScale, texHeightScale); bool flipped = false; - scoped_ptr<TextureDrawQuad> textureQuad = TextureDrawQuad::create(sharedQuadState, quadRect, plane.resourceId, premultipliedAlpha, uvRect, flipped); + scoped_ptr<TextureDrawQuad> textureQuad = TextureDrawQuad::create(sharedQuadState, quadRect, opaqueRect, plane.resourceId, premultipliedAlpha, uvRect, flipped); quadSink.append(textureQuad.PassAs<DrawQuad>(), appendQuadsData); break; } @@ -236,13 +237,13 @@ void VideoLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad bool premultipliedAlpha = true; gfx::RectF uvRect(0, 0, texWidthScale, texHeightScale); bool flipped = false; - scoped_ptr<TextureDrawQuad> textureQuad = TextureDrawQuad::create(sharedQuadState, quadRect, m_externalTextureResource, premultipliedAlpha, uvRect, flipped); + scoped_ptr<TextureDrawQuad> textureQuad = TextureDrawQuad::create(sharedQuadState, quadRect, opaqueRect, m_externalTextureResource, premultipliedAlpha, uvRect, flipped); quadSink.append(textureQuad.PassAs<DrawQuad>(), appendQuadsData); break; } case GL_TEXTURE_RECTANGLE_ARB: { gfx::Size visibleSize(visibleRect.width(), visibleRect.height()); - scoped_ptr<IOSurfaceDrawQuad> ioSurfaceQuad = IOSurfaceDrawQuad::create(sharedQuadState, quadRect, visibleSize, m_frame->texture_id(), IOSurfaceDrawQuad::Unflipped); + scoped_ptr<IOSurfaceDrawQuad> ioSurfaceQuad = IOSurfaceDrawQuad::create(sharedQuadState, quadRect, opaqueRect, visibleSize, m_frame->texture_id(), IOSurfaceDrawQuad::Unflipped); quadSink.append(ioSurfaceQuad.PassAs<DrawQuad>(), appendQuadsData); break; } @@ -251,7 +252,7 @@ void VideoLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad WebKit::WebTransformationMatrix transform(m_streamTextureMatrix); transform.scaleNonUniform(texWidthScale, texHeightScale); scoped_ptr<StreamVideoDrawQuad> streamVideoQuad = - StreamVideoDrawQuad::create(sharedQuadState, quadRect, + StreamVideoDrawQuad::create(sharedQuadState, quadRect, opaqueRect, m_frame->texture_id(), transform); quadSink.append(streamVideoQuad.PassAs<DrawQuad>(), appendQuadsData); |