static void paintLayers(PaintLayer& layer, SimDisplayItemList& displayList) { if (layer.isAllowedToQueryCompositingState() && layer.compositingState() == PaintsIntoOwnBacking) { CompositedLayerMapping* mapping = layer.compositedLayerMapping(); GraphicsLayer* graphicsLayer = mapping->mainGraphicsLayer(); if (graphicsLayer->hasTrackedPaintInvalidations()) { ContentLayerDelegate* delegate = graphicsLayer->contentLayerDelegateForTesting(); delegate->paintContents(&displayList, WebRect(0, 0, layer.size().width(), layer.size().height())); graphicsLayer->resetTrackedPaintInvalidations(); } } for (PaintLayer* child = layer.firstChild(); child; child = child->nextSibling()) paintLayers(*child, displayList); }
void InspectorLayerTreeAgent::didPaint(RenderObject* renderer, GraphicsContext*, const LayoutRect& rect) { RenderLayer* renderLayer = toRenderLayerModelObject(renderer)->layer(); CompositedLayerMapping* compositedLayerMapping = renderLayer->compositedLayerMapping(); // Should only happen for FrameView paints when compositing is off. Consider different instrumentation method for that. if (!compositedLayerMapping) return; GraphicsLayer* graphicsLayer = compositedLayerMapping->mainGraphicsLayer(); RefPtr<TypeBuilder::DOM::Rect> domRect = TypeBuilder::DOM::Rect::create() .setX(rect.x()) .setY(rect.y()) .setWidth(rect.width()) .setHeight(rect.height()); m_frontend->layerPainted(idForLayer(graphicsLayer), domRect.release()); }
static WebLayer* webLayerFromElement(Element* element) { if (!element) return 0; LayoutObject* layoutObject = element->layoutObject(); if (!layoutObject || !layoutObject->isBoxModelObject()) return 0; PaintLayer* layer = toLayoutBoxModelObject(layoutObject)->layer(); if (!layer) return 0; if (!layer->hasCompositedLayerMapping()) return 0; CompositedLayerMapping* compositedLayerMapping = layer->compositedLayerMapping(); GraphicsLayer* graphicsLayer = compositedLayerMapping->mainGraphicsLayer(); if (!graphicsLayer) return 0; return graphicsLayer->platformLayer(); }
static WebLayer* webLayerFromElement(Element* element) { CompositedLayerMapping* compositedLayerMapping = mappingFromElement(element); if (!compositedLayerMapping) return nullptr; return webLayerFromGraphicsLayer(compositedLayerMapping->mainGraphicsLayer()); }