diff options
Diffstat (limited to 'src/views/SkWindow.cpp')
-rw-r--r-- | src/views/SkWindow.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp index ba06a1f3c2..f86bb9f9ef 100644 --- a/src/views/SkWindow.cpp +++ b/src/views/SkWindow.cpp @@ -316,7 +316,6 @@ bool SkWindow::onDispatchClick(int x, int y, Click::State state, #if SK_SUPPORT_GPU -#include "GrBackendSurface.h" #include "GrContext.h" #include "gl/GrGLInterface.h" #include "gl/GrGLUtil.h" @@ -325,9 +324,10 @@ bool SkWindow::onDispatchClick(int x, int y, Click::State state, sk_sp<SkSurface> SkWindow::makeGpuBackedSurface(const AttachmentInfo& attachmentInfo, const GrGLInterface* interface, GrContext* grContext) { - int width = SkScalarRoundToInt(this->width()); - int height = SkScalarRoundToInt(this->height()); - if (0 == width || 0 == height) { + GrBackendRenderTargetDesc desc; + desc.fWidth = SkScalarRoundToInt(this->width()); + desc.fHeight = SkScalarRoundToInt(this->height()); + if (0 == desc.fWidth || 0 == desc.fHeight) { return nullptr; } @@ -340,28 +340,22 @@ sk_sp<SkSurface> SkWindow::makeGpuBackedSurface(const AttachmentInfo& attachment // // ... and, if we're using a 10-bit/channel FB0, it doesn't do sRGB conversion on write, // so pretend that it's non-sRGB 8888: - GrPixelConfig config = grContext->caps()->srgbSupport() && - info().colorSpace() && - (attachmentInfo.fColorBits != 30) - ? kSRGBA_8888_GrPixelConfig : kRGBA_8888_GrPixelConfig; - GrGLFramebufferInfo fbInfo; + desc.fConfig = + grContext->caps()->srgbSupport() && + info().colorSpace() && + (attachmentInfo.fColorBits != 30) + ? kSRGBA_8888_GrPixelConfig : kRGBA_8888_GrPixelConfig; + desc.fOrigin = kBottomLeft_GrSurfaceOrigin; + desc.fSampleCnt = attachmentInfo.fSampleCount; + desc.fStencilBits = attachmentInfo.fStencilBits; GrGLint buffer; GR_GL_GetIntegerv(interface, GR_GL_FRAMEBUFFER_BINDING, &buffer); - fbInfo.fFBOID = buffer; - - GrBackendRenderTarget backendRT(width, - height, - attachmentInfo.fSampleCount, - attachmentInfo.fStencilBits, - config, - fbInfo); - + desc.fRenderTargetHandle = buffer; sk_sp<SkColorSpace> colorSpace = grContext->caps()->srgbSupport() && info().colorSpace() ? SkColorSpace::MakeSRGB() : nullptr; - return SkSurface::MakeFromBackendRenderTarget(grContext, backendRT, kBottomLeft_GrSurfaceOrigin, - colorSpace, &fSurfaceProps); + return SkSurface::MakeFromBackendRenderTarget(grContext, desc, colorSpace, &fSurfaceProps); } #endif |