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(); |