aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/views/SkWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/SkWindow.cpp')
-rw-r--r--src/views/SkWindow.cpp23
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