bool DeprecatedImageHostBuffered::Update(const SurfaceDescriptor& aImage, SurfaceDescriptor* aResult) { if (!GetDeprecatedTextureHost()) { *aResult = aImage; return false; } GetDeprecatedTextureHost()->SwapTextures(aImage, aResult); return GetDeprecatedTextureHost()->IsValid(); }
bool CompositableHost::Update(const SurfaceDescriptor& aImage, SurfaceDescriptor* aResult) { if (!GetDeprecatedTextureHost()) { *aResult = aImage; return false; } MOZ_ASSERT(!GetDeprecatedTextureHost()->GetBuffer(), "This path not suitable for texture-level double buffering."); GetDeprecatedTextureHost()->Update(aImage); *aResult = aImage; return GetDeprecatedTextureHost()->IsValid(); }
bool CompositableHost::AddMaskEffect(EffectChain& aEffects, const gfx::Matrix4x4& aTransform, bool aIs3D) { RefPtr<TextureSource> source; RefPtr<DeprecatedTextureHost> oldHost = GetDeprecatedTextureHost(); if (oldHost) { oldHost->Lock(); source = oldHost; } else { RefPtr<TextureHost> host = GetTextureHost(); if (host) { host->Lock(); source = host->GetTextureSources(); } } if (!source) { NS_WARNING("Using compositable with no texture host as mask layer"); return false; } RefPtr<EffectMask> effect = new EffectMask(source, source->GetSize(), aTransform); effect->mIs3D = aIs3D; aEffects.mSecondaryEffects[EFFECT_MASK] = effect; return true; }
void CompositableHost::RemoveMaskEffect() { RefPtr<DeprecatedTextureHost> oldHost = GetDeprecatedTextureHost(); if (oldHost) { oldHost->Unlock(); } else { RefPtr<TextureHost> host = GetTextureHost(); if (host) { host->Unlock(); } } }