void InspectorLayerTreeAgent::compositingReasons(ErrorString* errorString, const String& layerId, RefPtr<TypeBuilder::Array<String> >& reasonStrings) { static CompositingReasonToProtocolName compositingReasonNames[] = { { CompositingReason3DTransform, "transform3D" }, { CompositingReasonVideo, "video" }, { CompositingReasonCanvas, "canvas" }, { CompositingReasonPlugin, "plugin" }, { CompositingReasonIFrame, "iFrame" }, { CompositingReasonBackfaceVisibilityHidden, "backfaceVisibilityHidden" }, { CompositingReasonAnimation, "animation" }, { CompositingReasonFilters, "filters" }, { CompositingReasonPositionFixed, "positionFixed" }, { CompositingReasonPositionSticky, "positionSticky" }, { CompositingReasonOverflowScrollingTouch, "overflowScrollingTouch" }, { CompositingReasonAssumedOverlap, "assumedOverlap" }, { CompositingReasonOverlap, "overlap" }, { CompositingReasonNegativeZIndexChildren, "negativeZIndexChildren" }, { CompositingReasonTransformWithCompositedDescendants, "transformWithCompositedDescendants" }, { CompositingReasonOpacityWithCompositedDescendants, "opacityWithCompositedDescendants" }, { CompositingReasonMaskWithCompositedDescendants, "maskWithCompositedDescendants" }, { CompositingReasonReflectionWithCompositedDescendants, "reflectionWithCompositedDescendants" }, { CompositingReasonFilterWithCompositedDescendants, "filterWithCompositedDescendants" }, { CompositingReasonBlendingWithCompositedDescendants, "blendingWithCompositedDescendants" }, { CompositingReasonClipsCompositingDescendants, "clipsCompositingDescendants" }, { CompositingReasonPerspective, "perspective" }, { CompositingReasonPreserve3D, "preserve3D" }, { CompositingReasonRoot, "root" }, { CompositingReasonLayerForClip, "layerForClip" }, { CompositingReasonLayerForScrollbar, "layerForScrollbar" }, { CompositingReasonLayerForScrollingContainer, "layerForScrollingContainer" }, { CompositingReasonLayerForForeground, "layerForForeground" }, { CompositingReasonLayerForBackground, "layerForBackground" }, { CompositingReasonLayerForMask, "layerForMask" }, { CompositingReasonLayerForVideoOverlay, "layerForVideoOverlay" } }; const GraphicsLayer* graphicsLayer = layerById(errorString, layerId); if (!graphicsLayer) return; WebKit::WebCompositingReasons reasonsBitmask = graphicsLayer->compositingReasons(); reasonStrings = TypeBuilder::Array<String>::create(); for (size_t i = 0; i < WTF_ARRAY_LENGTH(compositingReasonNames); ++i) { if (!(reasonsBitmask & compositingReasonNames[i].mask)) continue; reasonStrings->addItem(compositingReasonNames[i].protocolName); #ifndef _NDEBUG reasonsBitmask &= ~compositingReasonNames[i].mask; #endif } ASSERT(!reasonsBitmask); }
void InspectorLayerTreeAgent::makeSnapshot(ErrorString* errorString, const String& layerId, String* snapshotId) { GraphicsLayer* layer = layerById(errorString, layerId); if (!layer) return; GraphicsContextRecorder recorder; IntSize size = expandedIntSize(layer->size()); GraphicsContext* context = recorder.record(size, layer->contentsOpaque()); layer->paint(*context, IntRect(IntPoint(0, 0), size)); RefPtr<GraphicsContextSnapshot> snapshot = recorder.stop(); *snapshotId = String::number(++s_lastSnapshotId); bool newEntry = m_snapshotById.add(*snapshotId, snapshot).isNewEntry; ASSERT_UNUSED(newEntry, newEntry); }
void InspectorLayerTreeAgent::compositingReasons(ErrorString* errorString, const String& layerId, RefPtr<TypeBuilder::Array<String> >& reasonStrings) { const GraphicsLayer* graphicsLayer = layerById(errorString, layerId); if (!graphicsLayer) return; CompositingReasons reasonsBitmask = graphicsLayer->compositingReasons(); reasonStrings = TypeBuilder::Array<String>::create(); for (size_t i = 0; i < kNumberOfCompositingReasons; ++i) { if (!(reasonsBitmask & kCompositingReasonStringMap[i].reason)) continue; reasonStrings->addItem(kCompositingReasonStringMap[i].shortName); #ifndef _NDEBUG reasonsBitmask &= ~kCompositingReasonStringMap[i].reason; #endif } ASSERT(!reasonsBitmask); }
void InspectorLayerTreeAgent::makeSnapshot(ErrorString* errorString, const String& layerId, String* snapshotId) { GraphicsLayer* layer = layerById(errorString, layerId); if (!layer) return; IntSize size = expandedIntSize(layer->size()); SkPictureBuilder pictureBuilder(FloatRect(0, 0, size.width(), size.height())); layer->paint(pictureBuilder.context(), IntRect(IntPoint(0, 0), size)); RefPtr<PictureSnapshot> snapshot = adoptRef(new PictureSnapshot(pictureBuilder.endRecording())); *snapshotId = String::number(++s_lastSnapshotId); bool newEntry = m_snapshotById.add(*snapshotId, snapshot).isNewEntry; ASSERT_UNUSED(newEntry, newEntry); }
void InspectorLayerTreeAgent::makeSnapshot(ErrorString* errorString, const String& layerId, String* snapshotId) { GraphicsLayer* layer = layerById(errorString, layerId); if (!layer) return; IntSize size = expandedIntSize(layer->size()); GraphicsContext context(*layer->paintController()); IntRect interestRect(IntPoint(0, 0), size); layer->paint(context, &interestRect); layer->paintController()->commitNewDisplayItems(); context.beginRecording(interestRect); layer->paintController()->paintArtifact().replay(context); RefPtr<PictureSnapshot> snapshot = adoptRef(new PictureSnapshot(context.endRecording())); *snapshotId = String::number(++s_lastSnapshotId); bool newEntry = m_snapshotById.add(*snapshotId, snapshot).isNewEntry; ASSERT_UNUSED(newEntry, newEntry); }
WDLayerHierarchy *WDLayerHierarchy::extractSubHierarchy(const std::string &idLayer) { return extractSubHierarchy(layerById(idLayer)); }