Allow locklessly acquiring the TextureSources for ContentHosts. (bug 1365879 part 7, r=mattwoodrow)

This commit is contained in:
David Anderson 2017-06-20 01:17:17 -07:00
parent ac1b90f140
commit 8974aed87a
2 changed files with 27 additions and 0 deletions

View File

@ -217,6 +217,26 @@ ContentHostTexture::Composite(Compositor* aCompositor,
aTransform, mFlashCounter);
}
RefPtr<TextureSource>
ContentHostTexture::AcquireTextureSource()
{
if (!mTextureHost || !mTextureHost->AcquireTextureSource(mTextureSource)) {
return nullptr;
}
return mTextureSource.get();
}
RefPtr<TextureSource>
ContentHostTexture::AcquireTextureSourceOnWhite()
{
if (!mTextureHostOnWhite ||
!mTextureHostOnWhite->AcquireTextureSource(mTextureSourceOnWhite))
{
return nullptr;
}
return mTextureSourceOnWhite.get();
}
void
ContentHostTexture::UseTextureHost(const nsTArray<TimedTexture>& aTextures)
{

View File

@ -177,6 +177,13 @@ public:
mLocked = false;
}
bool HasComponentAlpha() const {
return !!mTextureHostOnWhite;
}
RefPtr<TextureSource> AcquireTextureSource();
RefPtr<TextureSource> AcquireTextureSourceOnWhite();
ContentHostTexture* AsContentHostTexture() override { return this; }
virtual already_AddRefed<TexturedEffect> GenEffect(const gfx::SamplingFilter aSamplingFilter) override;