void TextureMapperLayer::syncCompositingState(GraphicsLayerTextureMapper* graphicsLayer, TextureMapper* textureMapper, int options) { if (!textureMapper) return; if (graphicsLayer && !(options & ComputationsOnly)) { syncCompositingStateSelf(graphicsLayer, textureMapper); graphicsLayer->didSynchronize(); } if (graphicsLayer && m_state.maskLayer) { m_state.maskLayer->syncCompositingState(toGraphicsLayerTextureMapper(graphicsLayer->maskLayer()), textureMapper); // A mask layer has its parent's size by default, in case it's not set specifically. if (m_state.maskLayer->m_size.isEmpty()) m_state.maskLayer->m_size = m_size; } if (m_state.replicaLayer) m_state.replicaLayer->syncCompositingState(toGraphicsLayerTextureMapper(graphicsLayer->replicaLayer()), textureMapper); syncAnimations(); updateBackingStore(textureMapper, graphicsLayer); if (!(options & TraverseDescendants)) options = ComputationsOnly; if (graphicsLayer) { Vector<GraphicsLayer*> children = graphicsLayer->children(); for (int i = children.size() - 1; i >= 0; --i) { TextureMapperLayer* layer = toTextureMapperLayer(children[i]); if (!layer) continue; layer->syncCompositingState(toGraphicsLayerTextureMapper(children[i]), textureMapper, options); } } else { for (int i = m_children.size() - 1; i >= 0; --i) m_children[i]->syncCompositingState(0, textureMapper, options); } }
void PluginProxy::geometryDidChange() { ASSERT(m_isStarted); ShareableBitmap::Handle pluginBackingStoreHandle; if (updateBackingStore()) { // Create a new plug-in backing store. m_pluginBackingStore = ShareableBitmap::createShareable(m_backingStore->size(), ShareableBitmap::SupportsAlpha); if (!m_pluginBackingStore) return; // Create a handle to the plug-in backing store so we can send it over. if (!m_pluginBackingStore->createHandle(pluginBackingStoreHandle)) { m_pluginBackingStore = nullptr; return; } m_pluginBackingStoreContainsValidData = false; } m_connection->connection()->send(Messages::PluginControllerProxy::GeometryDidChange(m_pluginSize, m_clipRect, m_pluginToRootViewTransform, contentsScaleFactor(), pluginBackingStoreHandle), m_pluginInstanceID, IPC::DispatchMessageEvenWhenWaitingForSyncReply); }
/* \reimp (GraphicsLayer.h) */ void GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly() { m_layer->flushCompositingStateForThisLayerOnly(this); updateBackingStore(); didFlushCompositingState(); }