static GraphicsLayer* findLayerById(GraphicsLayer* root, int layerId) { if (root->platformLayer()->id() == layerId) return root; if (root->replicaLayer()) { if (GraphicsLayer* layer = findLayerById(root->replicaLayer(), layerId)) return layer; } for (size_t i = 0, size = root->children().size(); i < size; ++i) { if (GraphicsLayer* layer = findLayerById(root->children()[i], layerId)) return layer; } return nullptr; }
GraphicsLayer* InspectorLayerTreeAgent::layerById(ErrorString* errorString, const String& layerId) { bool ok; int id = layerId.toInt(&ok); if (!ok) { *errorString = "Invalid layer id"; return 0; } RenderLayerCompositor* compositor = renderLayerCompositor(); if (!compositor) return 0; GraphicsLayer* result = findLayerById(compositor->rootGraphicsLayer(), id); if (!result) *errorString = "No layer matching given id found"; return result; }
GraphicsLayer* InspectorLayerTreeAgent::layerById(ErrorString* errorString, const String& layerId) { bool ok; int id = layerId.toInt(&ok); if (!ok) { *errorString = "Invalid layer id"; return nullptr; } PaintLayerCompositor* compositor = paintLayerCompositor(); if (!compositor) { *errorString = "Not in compositing mode"; return nullptr; } GraphicsLayer* result = findLayerById(rootGraphicsLayer(), id); if (!result) *errorString = "No layer matching given id found"; return result; }