Bug 1370117 - Update the external image status for reusing case. r=sotaro

When gecko go through the reusing case, the aUseExternalImage isn't set to the correct value. It is always false here.
Then, gecko will use the non-external-image code path later. Add a new data member "mUseExternalImage" to save the previous status.

MozReview-Commit-ID: KvzgIzYXNAB
This commit is contained in:
JerryShih 2017-06-05 15:30:10 +08:00
Родитель fb74d7df50
Коммит b64d13e2ad
2 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -20,6 +20,7 @@ namespace layers {
WebRenderCompositableHolder::AsyncImagePipelineHolder::AsyncImagePipelineHolder()
: mInitialised(false)
, mIsChanged(false)
, mUseExternalImage(false)
, mFilter(WrImageRendering::Auto)
, mMixBlendMode(WrMixBlendMode::Normal)
{}
@ -293,6 +294,7 @@ WebRenderCompositableHolder::UpdateImageKeys(wr::WebRenderAPI* aApi,
if (texture == aHolder->mCurrentTexture) {
// Reuse previous ImageKeys.
aKeys.AppendElements(aHolder->mKeys);
aUseExternalImage = aHolder->mUseExternalImage;
return true;
}
@ -306,7 +308,7 @@ WebRenderCompositableHolder::UpdateImageKeys(wr::WebRenderAPI* aApi,
return true;
}
aUseExternalImage = GetImageKeyForTextureHost(aApi, texture, aKeys);
aUseExternalImage = aHolder->mUseExternalImage = GetImageKeyForTextureHost(aApi, texture, aKeys);
MOZ_ASSERT(!aKeys.IsEmpty());
aHolder->mKeys.AppendElements(aKeys);
aHolder->mCurrentTexture = texture;

Просмотреть файл

@ -122,6 +122,7 @@ private:
bool mInitialised;
bool mIsChanged;
bool mUseExternalImage;
LayerRect mScBounds;
gfx::Matrix4x4 mScTransform;
gfx::MaybeIntSize mScaleToSize;