diff options
Diffstat (limited to 'src/views/SkWindow.cpp')
-rw-r--r-- | src/views/SkWindow.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp index 7870d06bfe..61eaa978b1 100644 --- a/src/views/SkWindow.cpp +++ b/src/views/SkWindow.cpp @@ -341,3 +341,26 @@ bool SkWindow::onDispatchClick(int x, int y, Click::State state, } return handled; } + +#if SK_SUPPORT_GPU + +#include "gl/GrGLInterface.h" +#include "gl/GrGLUtil.h" +#include "SkGr.h" + +GrRenderTarget* SkWindow::renderTarget(const AttachmentInfo& attachmentInfo, + const GrGLInterface* interface, GrContext* grContext) { + GrBackendRenderTargetDesc desc; + desc.fWidth = SkScalarRoundToInt(this->width()); + desc.fHeight = SkScalarRoundToInt(this->height()); + desc.fConfig = kSkia8888_GrPixelConfig; + desc.fOrigin = kBottomLeft_GrSurfaceOrigin; + desc.fSampleCnt = attachmentInfo.fSampleCount; + desc.fStencilBits = attachmentInfo.fStencilBits; + GrGLint buffer; + GR_GL_GetIntegerv(interface, GR_GL_FRAMEBUFFER_BINDING, &buffer); + desc.fRenderTargetHandle = buffer; + return grContext->wrapBackendRenderTarget(desc); +} + +#endif |