Chromium Code Reviews| Index: cc/layer_tree_host_impl.cc |
| diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
| index 55f6452ded8bc55344b72f71dc08478de00335a7..d9859fbd595b4fc6bcbe3fb1f87ae55abb50e96b 100644 |
| --- a/cc/layer_tree_host_impl.cc |
| +++ b/cc/layer_tree_host_impl.cc |
| @@ -491,8 +491,6 @@ static void appendQuadsToFillScreen(RenderPass* targetRenderPass, LayerImpl* roo |
| // doesn't have any bounds and so can't generate this itself. |
| // FIXME: Make the gutter quads generated by the solid color layer (make it smarter about generating quads to fill unoccluded areas). |
| - DCHECK(rootLayer->screenSpaceTransform().IsInvertible()); |
| - |
| gfx::Rect rootTargetRect = rootLayer->renderSurface()->contentRect(); |
| float opacity = 1; |
| SharedQuadState* sharedQuadState = quadCuller.useSharedQuadState(SharedQuadState::Create()); |
| @@ -504,10 +502,14 @@ static void appendQuadsToFillScreen(RenderPass* targetRenderPass, LayerImpl* roo |
| opacity); |
| AppendQuadsData appendQuadsData; |
| - gfx::Transform transformToLayerSpace = MathUtil::inverse(rootLayer->screenSpaceTransform()); |
| + |
| + DCHECK(rootLayer->screenSpaceTransform().IsInvertible()); |
|
danakj
2013/01/04 21:56:07
This DCHECK is redundant with the DCHECK(didInvert
|
| + gfx::Transform transformToLayerSpace(gfx::Transform::kSkipInitialization); |
| + bool didInvert = rootLayer->screenSpaceTransform().GetInverse(&transformToLayerSpace); |
| + DCHECK(didInvert); |
| for (Region::Iterator fillRects(fillRegion); fillRects.has_rect(); fillRects.next()) { |
| // The root layer transform is composed of translations and scales only, |
| - // no perspective, so mapping is sufficient. |
| + // no perspective, so mapping is sufficient (as opposed to projecting). |
|
danakj
2013/01/04 21:56:07
^_^
|
| gfx::Rect layerRect = MathUtil::mapClippedRect(transformToLayerSpace, fillRects.rect()); |
| // Skip the quad culler and just append the quads directly to avoid |
| // occlusion checks. |
| @@ -1277,7 +1279,9 @@ static gfx::Vector2dF scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewp |
| // Layers with non-invertible screen space transforms should not have passed the scroll hit |
| // test in the first place. |
| DCHECK(layerImpl.screenSpaceTransform().IsInvertible()); |
| - gfx::Transform inverseScreenSpaceTransform = MathUtil::inverse(layerImpl.screenSpaceTransform()); |
| + gfx::Transform inverseScreenSpaceTransform(gfx::Transform::kSkipInitialization); |
| + bool didInvert = layerImpl.screenSpaceTransform().GetInverse(&inverseScreenSpaceTransform); |
| + DCHECK(didInvert); |
|
danakj
2013/01/04 21:56:07
This is going to potentially bomb when we start im
|
| gfx::PointF screenSpacePoint = gfx::ScalePoint(viewportPoint, scaleFromViewportToScreenSpace); |