bool LayerTransactionParent::Attach(ShadowLayerParent* aLayerParent, CompositableHost* aCompositable, bool aIsAsync) { if (!aCompositable) { return false; } Layer* baselayer = aLayerParent->AsLayer(); if (!baselayer) { return false; } LayerComposite* layer = baselayer->AsLayerComposite(); if (!layer) { return false; } Compositor* compositor = static_cast<LayerManagerComposite*>(aLayerParent->AsLayer()->Manager())->GetCompositor(); if (!layer->SetCompositableHost(aCompositable)) { // not all layer types accept a compositable, see bug 967824 return false; } aCompositable->Attach(aLayerParent->AsLayer(), compositor, aIsAsync ? CompositableHost::ALLOW_REATTACH | CompositableHost::KEEP_ATTACHED : CompositableHost::NO_FLAGS); return true; }
void LayerTransactionParent::Attach(ShadowLayerParent* aLayerParent, CompositableParent* aCompositable) { LayerComposite* layer = aLayerParent->AsLayer()->AsLayerComposite(); MOZ_ASSERT(layer); Compositor* compositor = static_cast<LayerManagerComposite*>(aLayerParent->AsLayer()->Manager())->GetCompositor(); CompositableHost* compositable = aCompositable->GetCompositableHost(); MOZ_ASSERT(compositable); layer->SetCompositableHost(compositable); compositable->Attach(aLayerParent->AsLayer(), compositor); }
void LayerTransactionParent::Attach(ShadowLayerParent* aLayerParent, CompositableParent* aCompositable, bool aIsAsyncVideo) { LayerComposite* layer = aLayerParent->AsLayer()->AsLayerComposite(); MOZ_ASSERT(layer); Compositor* compositor = static_cast<LayerManagerComposite*>(aLayerParent->AsLayer()->Manager())->GetCompositor(); CompositableHost* compositable = aCompositable->GetCompositableHost(); MOZ_ASSERT(compositable); layer->SetCompositableHost(compositable); compositable->Attach(aLayerParent->AsLayer(), compositor, aIsAsyncVideo ? CompositableHost::ALLOW_REATTACH | CompositableHost::KEEP_ATTACHED : CompositableHost::NO_FLAGS); }