From faabf0ced34cc0f18459be1d7e7fc0b7fe5c57ed Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Mon, 12 Nov 2018 11:20:49 -0800 Subject: [PATCH] Fix MakeRenderContextCurrent to handle software rendering (#6827) --- shell/common/rasterizer.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/common/rasterizer.cc b/shell/common/rasterizer.cc index 3560690e388..e2274c9a512 100644 --- a/shell/common/rasterizer.cc +++ b/shell/common/rasterizer.cc @@ -93,16 +93,16 @@ sk_sp Rasterizer::MakeRasterSnapshot(sk_sp picture, SkISize picture_size) { TRACE_EVENT0("flutter", __FUNCTION__); - if (!surface_->MakeRenderContextCurrent()) { - return nullptr; - } - sk_sp surface; if (surface_ == nullptr || surface_->GetContext() == nullptr) { // Raster surface is fine if there is no on screen surface. This might // happen in case of software rendering. surface = SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(picture_size)); } else { + if (!surface_->MakeRenderContextCurrent()) { + return nullptr; + } + // When there is an on screen surface, we need a render target SkSurface // because we want to access texture backed images. surface = SkSurface::MakeRenderTarget(