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

Unified Diff: cc/delegated_renderer_layer_impl.cc

Issue 11821015: cc: Use the size of the source frame along with the source frame's renderpasses (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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/delegated_renderer_layer_impl.cc
diff --git a/cc/delegated_renderer_layer_impl.cc b/cc/delegated_renderer_layer_impl.cc
index f5a1d04cccc4d712c62630000a3d5533587b9b99..be107bb054ad309189da04ad4324dacde46aba2e 100644
--- a/cc/delegated_renderer_layer_impl.cc
+++ b/cc/delegated_renderer_layer_impl.cc
@@ -35,7 +35,7 @@ bool DelegatedRendererLayerImpl::hasContributingDelegatedRenderPasses() const
return m_renderPassesInDrawOrder.size() > 1;
}
-void DelegatedRendererLayerImpl::setRenderPasses(ScopedPtrVector<RenderPass>& renderPassesInDrawOrder)
+void DelegatedRendererLayerImpl::setRenderPasses(ScopedPtrVector<RenderPass>& renderPassesInDrawOrder, gfx::Size frameSize)
{
gfx::RectF oldRootDamage;
if (!m_renderPassesInDrawOrder.isEmpty())
@@ -51,6 +51,8 @@ void DelegatedRendererLayerImpl::setRenderPasses(ScopedPtrVector<RenderPass>& re
if (!m_renderPassesInDrawOrder.isEmpty())
m_renderPassesInDrawOrder.last()->damage_rect.Union(oldRootDamage);
+
+ m_frameSize = frameSize;
}
void DelegatedRendererLayerImpl::clearRenderPasses()
@@ -145,7 +147,12 @@ void DelegatedRendererLayerImpl::appendRenderPassQuads(QuadSink& quadSink, Appen
// This layer must be drawing to a renderTarget other than itself.
DCHECK(renderTarget() != this);
- copiedSharedQuadState->content_to_target_transform = drawTransform() * copiedSharedQuadState->content_to_target_transform;
+ gfx::Transform delegatedFrameToLayerSpaceTransform;
+ delegatedFrameToLayerSpaceTransform.Scale(
+ static_cast<double>(m_frameSize.width()) / bounds().width(),
+ static_cast<double>(m_frameSize.height()) / bounds().height());
+
+ copiedSharedQuadState->content_to_target_transform = drawTransform() * delegatedFrameToLayerSpaceTransform * copiedSharedQuadState->content_to_target_transform;
copiedSharedQuadState->clipped_rect_in_target = MathUtil::mapClippedRect(drawTransform(), copiedSharedQuadState->clipped_rect_in_target);
copiedSharedQuadState->clip_rect = MathUtil::mapClippedRect(drawTransform(), copiedSharedQuadState->clip_rect);
copiedSharedQuadState->opacity *= drawOpacity();

Powered by Google App Engine
This is Rietveld 408576698