static void convertTargetSpaceQuadToCompositedLayer(const FloatQuad& targetSpaceQuad, LayoutObject* targetLayoutObject, const LayoutBoxModelObject& paintInvalidationContainer, FloatQuad& compositedSpaceQuad) { DCHECK(targetLayoutObject); for (unsigned i = 0; i < 4; ++i) { IntPoint point; switch (i) { case 0: point = roundedIntPoint(targetSpaceQuad.p1()); break; case 1: point = roundedIntPoint(targetSpaceQuad.p2()); break; case 2: point = roundedIntPoint(targetSpaceQuad.p3()); break; case 3: point = roundedIntPoint(targetSpaceQuad.p4()); break; } // FIXME: this does not need to be absolute, just in the paint invalidation container's space. point = targetLayoutObject->frame()->view()->contentsToRootFrame(point); point = paintInvalidationContainer.frame()->view()->rootFrameToContents(point); FloatPoint floatPoint = paintInvalidationContainer.absoluteToLocal(point, UseTransforms); PaintLayer::mapPointInPaintInvalidationContainerToBacking(paintInvalidationContainer, floatPoint); switch (i) { case 0: compositedSpaceQuad.setP1(floatPoint); break; case 1: compositedSpaceQuad.setP2(floatPoint); break; case 2: compositedSpaceQuad.setP3(floatPoint); break; case 3: compositedSpaceQuad.setP4(floatPoint); break; } } }