Bug 1432411: Wallpaper over the case where there is no Screen. r=jgilbert

MozReview-Commit-ID: ISeBw7qxGdH
This commit is contained in:
Milan Sreckovic
2018-02-09 13:42:17 -05:00
parent a130e14d7b
commit 19df0d5bcf

View File

@@ -405,23 +405,25 @@ CanvasClientSharedSurface::UpdateRenderer(gfx::IntSize aSize, Renderer& aRendere
RefPtr<TextureClient> newFront;
mShSurfClient = nullptr;
if (canvasRenderer && canvasRenderer->mGLFrontbuffer) {
mShSurfClient = CloneSurface(canvasRenderer->mGLFrontbuffer.get(), canvasRenderer->mFactory.get());
if (!mShSurfClient) {
gfxCriticalError() << "Invalid canvas front buffer";
return;
}
} else {
} else if (gl->Screen()) {
mShSurfClient = gl->Screen()->Front();
if (mShSurfClient && mShSurfClient->GetAllocator() &&
mShSurfClient->GetAllocator() != GetForwarder()->GetTextureForwarder()) {
mShSurfClient = CloneSurface(mShSurfClient->Surf(), gl->Screen()->Factory());
}
if (!mShSurfClient) {
return;
}
}
MOZ_ASSERT(mShSurfClient);
if (!mShSurfClient) {
gfxCriticalError() << "Invalid canvas front buffer or screen";
return;
}
newFront = mShSurfClient;