Index: src/views/SkWindow.cpp |
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp |
index 7870d06bfe969a2105e2d379a53aee0ec63db7ce..61eaa978b15dc92d7b0f3009eeda25ea617244f1 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 |