void GraphicsLayerBlackBerry::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = LayerWebKitThread::create(LayerData::TransformLayer, this); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateAnimations(); m_layer->setPosition(FloatPoint(m_size.width() / 2.0f, m_size.height() / 2.0f)); m_layer->setAnchorPoint(FloatPoint(0.5f, 0.5f)); TransformationMatrix identity; m_layer->setTransform(identity); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->setOpacity(1); // Move this layer to be a child of the transform layer. if (m_layer->superlayer()) m_layer->superlayer()->replaceSublayer(m_layer.get(), m_transformLayer.get()); m_transformLayer->addSublayer(m_layer.get()); m_transformLayer->setPreserves3D(true); m_layer->setPreserves3D(true); updateSublayerList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromSuperlayer(); if (m_transformLayer->superlayer()) m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateAnimations(); m_layer->setPreserves3D(false); updateSublayerList(); } updateOpacityOnLayer(); }
void GraphicsLayerCACF::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = WebLayer::create(WKCACFLayer::TransformLayer, this); #ifndef NDEBUG m_transformLayer->setName(String().format("Transform Layer CATransformLayer(%p) GraphicsLayer(%p)", m_transformLayer.get(), this)); #endif // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); CGPoint point = CGPointMake(m_size.width() / 2.0f, m_size.height() / 2.0f); m_layer->setPosition(point); m_layer->setAnchorPoint(CGPointMake(0.5f, 0.5f)); m_layer->setTransform(wkqcCATransform3DIdentity()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->setOpacity(1); // Move this layer to be a child of the transform layer. if (m_layer->superlayer()) m_layer->superlayer()->replaceSublayer(m_layer.get(), m_transformLayer.get()); m_transformLayer->addSublayer(m_layer.get()); updateSublayerList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromSuperlayer(); m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateSublayerList(); } updateOpacityOnLayer(); }
void GraphicsLayerChromium::setContentsToMedia(PlatformLayer* layer) { bool childrenChanged = false; if (layer) { if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForVideo) { setupContentsLayer(layer); m_contentsLayer = layer; m_contentsLayerPurpose = ContentsLayerForVideo; childrenChanged = true; } layer->setOwner(this); layer->setNeedsDisplay(); updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateSublayerList. m_contentsLayer = 0; } } if (childrenChanged) updateSublayerList(); }
void GraphicsLayerChromium::setContentsToImage(Image* image) { bool childrenChanged = false; if (image) { if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForImage) { RefPtr<ImageLayerChromium> imageLayer = ImageLayerChromium::create(this); setupContentsLayer(imageLayer.get()); m_contentsLayer = imageLayer; m_contentsLayerPurpose = ContentsLayerForImage; childrenChanged = true; } ImageLayerChromium* imageLayer = static_cast<ImageLayerChromium*>(m_contentsLayer.get()); imageLayer->setContents(image); updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateSublayerList. m_contentsLayer = 0; } } if (childrenChanged) updateSublayerList(); }
void GraphicsLayerChromium::setContentsToCanvas(PlatformLayer* platformLayer) { bool childrenChanged = false; if (platformLayer) { platformLayer->setOwner(this); if (m_contentsLayer.get() != platformLayer) { setupContentsLayer(platformLayer); m_contentsLayer = platformLayer; m_contentsLayerPurpose = ContentsLayerForCanvas; childrenChanged = true; } m_contentsLayer->setNeedsDisplay(); updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateSublayerList. m_contentsLayer = 0; } } if (childrenChanged) updateSublayerList(); }
bool GraphicsLayerBlackBerry::replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild) { if (!GraphicsLayer::replaceChild(oldChild, newChild)) return false; updateSublayerList(); return true; }
bool GraphicsLayerChromium::replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild) { if (GraphicsLayer::replaceChild(oldChild, newChild)) { updateSublayerList(); return true; } return false; }
bool GraphicsLayerChromium::setChildren(const Vector<GraphicsLayer*>& children) { bool childrenChanged = GraphicsLayer::setChildren(children); // FIXME: GraphicsLayer::setChildren calls addChild() for each sublayer, which // will end up calling updateSublayerList() N times. if (childrenChanged) updateSublayerList(); return childrenChanged; }
void GraphicsLayerCACF::setContentsToMedia(PlatformLayer* mediaLayer) { if (mediaLayer == m_contentsLayer) return; m_contentsLayer = mediaLayer; m_contentsLayerPurpose = mediaLayer ? ContentsLayerForMedia : NoContentsLayer; updateContentsMedia(); // This has to happen after updateContentsMedia updateSublayerList(); }
void GraphicsLayerBlackBerry::setContentsToImage(Image* image) { bool childrenChanged = false; if (image) { m_contentsLayerPurpose = ContentsLayerForImage; if (!m_contentsLayer) childrenChanged = true; } else { m_contentsLayerPurpose = NoContentsLayer; if (m_contentsLayer) childrenChanged = true; } updateContentsImage(image); if (childrenChanged) updateSublayerList(); }
void GraphicsLayerCACF::setContentsToImage(Image* image) { bool childrenChanged = false; if (image) { m_pendingContentsImage = image->nativeImageForCurrentFrame(); m_contentsLayerPurpose = ContentsLayerForImage; if (!m_contentsLayer) childrenChanged = true; } else { m_pendingContentsImage = 0; m_contentsLayerPurpose = NoContentsLayer; if (m_contentsLayer) childrenChanged = true; } updateContentsImage(); // This has to happen after updateContentsImage if (childrenChanged) updateSublayerList(); }
void GraphicsLayerClutter::commitLayerChangesBeforeSublayers(float pageScaleFactor, const FloatPoint& positionRelativeToBase) { if (!m_uncommittedChanges) return; if (m_uncommittedChanges & NameChanged) updateLayerNames(); if (m_uncommittedChanges & ChildrenChanged) updateSublayerList(); if (m_uncommittedChanges & GeometryChanged) updateGeometry(pageScaleFactor, positionRelativeToBase); if (m_uncommittedChanges & TransformChanged) updateTransform(); if (m_uncommittedChanges & DrawsContentChanged) updateLayerDrawsContent(pageScaleFactor, positionRelativeToBase); if (m_uncommittedChanges & DirtyRectsChanged) repaintLayerDirtyRects(); }
void GraphicsLayerCACF::addChildBelow(GraphicsLayer* childLayer, GraphicsLayer* sibling) { GraphicsLayer::addChildBelow(childLayer, sibling); updateSublayerList(); }
void GraphicsLayerChromium::addChildAbove(GraphicsLayer* childLayer, GraphicsLayer *sibling) { GraphicsLayer::addChildAbove(childLayer, sibling); updateSublayerList(); }
void GraphicsLayerChromium::addChildAtIndex(GraphicsLayer* childLayer, int index) { GraphicsLayer::addChildAtIndex(childLayer, index); updateSublayerList(); }
void GraphicsLayerChromium::addChild(GraphicsLayer* childLayer) { GraphicsLayer::addChild(childLayer); updateSublayerList(); }
void GraphicsLayerBlackBerry::addChildAbove(GraphicsLayer* childLayer, GraphicsLayer *sibling) { GraphicsLayer::addChildAbove(childLayer, sibling); updateSublayerList(); }
void GraphicsLayerBlackBerry::addChildAtIndex(GraphicsLayer* childLayer, int index) { GraphicsLayer::addChildAtIndex(childLayer, index); updateSublayerList(); }
void GraphicsLayerBlackBerry::addChild(GraphicsLayer* childLayer) { GraphicsLayer::addChild(childLayer); updateSublayerList(); }