void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && m_transformLayer.isNull()) { // Create the transform layer. m_transformLayer = WebLayer::create(); m_transformLayer.setPreserves3D(true); m_transformLayer.setAnimationDelegate(this); m_layer.transferAnimationsTo(&m_transformLayer); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); m_layer.setPosition(FloatPoint::zero()); m_layer.setAnchorPoint(FloatPoint(0.5f, 0.5f)); m_layer.setTransform(SkMatrix44()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer.setOpacity(1); m_layer.setContentsScale(contentsScale()); // Move this layer to be a child of the transform layer. if (!m_layer.parent().isNull()) m_layer.parent().replaceChild(m_layer, m_transformLayer); m_transformLayer.addChild(m_layer); updateChildList(); } else if (!m_preserves3D && !m_transformLayer.isNull()) { // Relace the transformLayer in the parent with this layer. m_layer.removeFromParent(); if (!m_transformLayer.parent().isNull()) m_transformLayer.parent().replaceChild(m_transformLayer, m_layer); m_layer.setAnimationDelegate(this); m_transformLayer.transferAnimationsTo(&m_layer); // Release the transform layer. m_transformLayer.setAnimationDelegate(0); m_transformLayer.reset(); updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer.setPreserves3D(m_preserves3D); primaryLayer().setOpacity(m_opacity); updateNames(); }
void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { m_transformLayer = adoptPtr(Platform::current()->compositorSupport()->createLayer()); m_transformLayer->setPreserves3D(true); m_transformLayer->setAnimationDelegate(this); m_layer->layer()->transferAnimationsTo(m_transformLayer.get()); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); m_layer->layer()->setPosition(FloatPoint::zero()); m_layer->layer()->setAnchorPoint(FloatPoint(0.5f, 0.5f)); m_layer->layer()->setTransform(SkMatrix44()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->layer()->setOpacity(1); // Move this layer to be a child of the transform layer. if (parent()) parent()->platformLayer()->replaceChild(m_layer->layer(), m_transformLayer.get()); m_transformLayer->addChild(m_layer->layer()); updateChildList(); } else if (!m_preserves3D && m_transformLayer) { // Replace the transformLayer in the parent with this layer. m_layer->layer()->removeFromParent(); if (parent()) parent()->platformLayer()->replaceChild(m_transformLayer.get(), m_layer->layer()); m_layer->layer()->setAnimationDelegate(this); m_transformLayer->transferAnimationsTo(m_layer->layer()); // Release the transform layer. m_transformLayer->setAnimationDelegate(0); m_transformLayer.clear(); updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer->layer()->setPreserves3D(m_preserves3D); platformLayer()->setOpacity(m_opacity); updateNames(); }
void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = LayerChromium::create(); m_transformLayer->setPreserves3D(true); m_transformLayer->setLayerAnimationDelegate(this); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); 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); m_layer->setContentsScale(contentsScale()); // Move this layer to be a child of the transform layer. if (m_layer->parent()) m_layer->parent()->replaceChild(m_layer.get(), m_transformLayer.get()); m_transformLayer->addChild(m_layer.get()); updateChildList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromParent(); if (m_transformLayer->parent()) m_transformLayer->parent()->replaceChild(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer->setLayerAnimationDelegate(0); m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer->setPreserves3D(m_preserves3D); primaryLayer()->setOpacity(m_opacity); updateNames(); }
void GraphicsLayerChromium::setContentsToImage(Image* image) { bool childrenChanged = false; if (image) { if (m_contentsLayer.isNull() || m_contentsLayerPurpose != ContentsLayerForImage) { WebKit::WebImageLayer imageLayer = WebKit::WebImageLayer::create(); setupContentsLayer(imageLayer); m_contentsLayerPurpose = ContentsLayerForImage; childrenChanged = true; } WebKit::WebImageLayer imageLayer = m_contentsLayer.to<WebKit::WebImageLayer>(); NativeImageSkia* nativeImage = image->nativeImageForCurrentFrame(); imageLayer.setBitmap(nativeImage->bitmap()); imageLayer.setOpaque(image->isBitmapImage() && !image->currentFrameHasAlpha()); updateContentsRect(); } else { if (!m_contentsLayer.isNull()) { childrenChanged = true; // The old contents layer will be removed via updateChildList. m_contentsLayer.reset(); } } if (childrenChanged) updateChildList(); }
void GraphicsLayerChromium::setContentsToCanvas(PlatformLayer* platformLayer) { bool childrenChanged = false; if (platformLayer) { platformLayer->setDelegate(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 updateChildList. m_contentsLayer = 0; } } if (childrenChanged) updateChildList(); }
void GraphicsLayerChromium::setContentsToImage(Image* image) { bool childrenChanged = false; NativeImageSkia* nativeImage = image ? image->nativeImageForCurrentFrame() : 0; if (nativeImage) { if (m_contentsLayerPurpose != ContentsLayerForImage) { m_imageLayer = adoptPtr(Platform::current()->compositorSupport()->createImageLayer()); registerContentsLayer(m_imageLayer->layer()); setupContentsLayer(m_imageLayer->layer()); m_contentsLayerPurpose = ContentsLayerForImage; childrenChanged = true; } m_imageLayer->setBitmap(nativeImage->bitmap()); m_imageLayer->layer()->setOpaque(image->isBitmapImage() && !image->currentFrameHasAlpha()); updateContentsRect(); } else { if (m_imageLayer) { childrenChanged = true; unregisterContentsLayer(m_imageLayer->layer()); m_imageLayer.clear(); } // The old contents layer will be removed via updateChildList. m_contentsLayer = 0; } if (childrenChanged) updateChildList(); }
void GraphicsLayer::addLinkHighlight(LinkHighlightClient* linkHighlight) { ASSERT(linkHighlight && !m_linkHighlights.contains(linkHighlight)); m_linkHighlights.append(linkHighlight); linkHighlight->layer()->setWebLayerClient(this); updateChildList(); }
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->setDelegate(this); layer->setNeedsDisplay(); updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateChildList. m_contentsLayer = 0; } } if (childrenChanged) updateChildList(); }
void cWindow::update(float elapsedtime, int x, int y) { if (!getShow()) return ; if (isIn(x, y)) _getGui()->setOverWindow(this); updateChildList(elapsedtime, x, y); }
void GraphicsLayerChromium::setContentsToImage(Image* image) { bool childrenChanged = false; if (image) { if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForImage) { RefPtr<ImageLayerChromium> imageLayer = ImageLayerChromium::create(); setupContentsLayer(imageLayer.get()); m_contentsLayerPurpose = ContentsLayerForImage; childrenChanged = true; } ImageLayerChromium* imageLayer = static_cast<ImageLayerChromium*>(m_contentsLayer.get()); imageLayer->setContents(image); imageLayer->setOpaque(image->isBitmapImage() && !image->currentFrameHasAlpha()); updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateChildList. m_contentsLayer = 0; } } if (childrenChanged) updateChildList(); }
void GraphicsLayer::setContentsTo(WebLayer* layer) { bool childrenChanged = false; if (layer) { ASSERT(s_registeredLayerSet); if (!s_registeredLayerSet->contains(layer->id())) CRASH(); if (m_contentsLayerId != layer->id()) { setupContentsLayer(layer); childrenChanged = true; } updateContentsRect(); } else { if (m_contentsLayer) { childrenChanged = true; // The old contents layer will be removed via updateChildList. m_contentsLayer = 0; m_contentsLayerId = 0; } } if (childrenChanged) updateChildList(); }
bool GraphicsLayerChromium::replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild) { if (GraphicsLayer::replaceChild(oldChild, newChild)) { updateChildList(); return true; } return false; }
bool GraphicsLayerChromium::setChildren(const Vector<GraphicsLayer*>& children) { m_inSetChildren = true; bool childrenChanged = GraphicsLayer::setChildren(children); if (childrenChanged) updateChildList(); m_inSetChildren = false; return childrenChanged; }
bool GraphicsLayer::setChildren(const GraphicsLayerVector& newChildren) { // If the contents of the arrays are the same, nothing to do. if (newChildren == m_children) return false; removeAllChildren(); size_t listSize = newChildren.size(); for (size_t i = 0; i < listSize; ++i) addChildInternal(newChildren[i]); updateChildList(); return true; }
void GraphicsLayer::addChildBelow(GraphicsLayer* childLayer, GraphicsLayer* sibling) { ASSERT(childLayer != this); childLayer->removeFromParent(); bool found = false; for (unsigned i = 0; i < m_children.size(); i++) { if (sibling == m_children[i]) { m_children.insert(i, childLayer); found = true; break; } } childLayer->setParent(this); if (!found) m_children.append(childLayer); updateChildList(); }
void GraphicsLayerChromium::setContentsToMedia(PlatformLayer* layer) { bool childrenChanged = false; if (layer) { if (m_contentsLayer.isNull() || m_contentsLayerPurpose != ContentsLayerForVideo) { setupContentsLayer(WebLayer(layer)); m_contentsLayerPurpose = ContentsLayerForVideo; childrenChanged = true; } updateContentsRect(); } else { if (!m_contentsLayer.isNull()) { childrenChanged = true; // The old contents layer will be removed via updateChildList. m_contentsLayer.reset(); } } if (childrenChanged) updateChildList(); }
void GraphicsLayerChromium::setLinkHighlight(LinkHighlightClient* linkHighlight) { m_linkHighlight = linkHighlight; updateChildList(); }
void GraphicsLayer::removeLinkHighlight(LinkHighlightClient* linkHighlight) { m_linkHighlights.remove(m_linkHighlights.find(linkHighlight)); updateChildList(); }
void GraphicsLayerChromium::addLinkHighlight(const Path& path) { m_linkHighlight = LinkHighlight::create(this, path, AnimationIdVendor::LinkHighlightAnimationId, AnimationIdVendor::getNextGroupId()); updateChildList(); }
void GraphicsLayerChromium::addChildAbove(GraphicsLayer* childLayer, GraphicsLayer *sibling) { GraphicsLayer::addChildAbove(childLayer, sibling); updateChildList(); }
void GraphicsLayerChromium::addChildAtIndex(GraphicsLayer* childLayer, int index) { GraphicsLayer::addChildAtIndex(childLayer, index); updateChildList(); }
void GraphicsLayerChromium::addChild(GraphicsLayer* childLayer) { GraphicsLayer::addChild(childLayer); if (!m_inSetChildren) updateChildList(); }
void GraphicsLayer::addChild(GraphicsLayer* childLayer) { addChildInternal(childLayer); updateChildList(); }