Index: example/HelloWorld.cpp |
diff --git a/example/HelloWorld.cpp b/example/HelloWorld.cpp |
index 32bee5dccd445a81e8724d959b7b7748e6349d63..5239311c85c81b2513b2443af7ac1ccf2e74ee47 100644 |
--- a/example/HelloWorld.cpp |
+++ b/example/HelloWorld.cpp |
@@ -29,7 +29,6 @@ void application_term() { |
HelloWorldWindow::HelloWorldWindow(void* hwnd) |
: INHERITED(hwnd) { |
fType = kGPU_DeviceType; |
- fRenderTarget = NULL; |
fRotationAngle = 0; |
this->setTitle(); |
this->setUpBackend(); |
@@ -46,8 +45,7 @@ void HelloWorldWindow::tearDownBackend() { |
SkSafeUnref(fInterface); |
fInterface = NULL; |
- SkSafeUnref(fRenderTarget); |
- fRenderTarget = NULL; |
+ fGpuSurface = nullptr; |
INHERITED::release(); |
} |
@@ -70,19 +68,17 @@ bool HelloWorldWindow::setUpBackend() { |
} |
fInterface = GrGLCreateNativeInterface(); |
- |
SkASSERT(NULL != fInterface); |
fContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext)fInterface); |
SkASSERT(NULL != fContext); |
- this->setUpRenderTarget(); |
+ this->setUpGpuBackedSurface(); |
return true; |
} |
-void HelloWorldWindow::setUpRenderTarget() { |
- SkSafeUnref(fRenderTarget); |
- fRenderTarget = this->renderTarget(fAttachmentInfo, fInterface, fContext); |
+void HelloWorldWindow::setUpGpuBackedSurface() { |
+ fGpuSurface = this->makeGpuBackedSurface(fAttachmentInfo, fInterface, fContext); |
} |
void HelloWorldWindow::drawContents(SkCanvas* canvas) { |
@@ -142,7 +138,7 @@ void HelloWorldWindow::drawContents(SkCanvas* canvas) { |
} |
void HelloWorldWindow::draw(SkCanvas* canvas) { |
- drawContents(canvas); |
+ this->drawContents(canvas); |
// in case we have queued drawing calls |
fContext->flush(); |
// Invalidate the window to force a redraw. Poor man's animation mechanism. |
@@ -150,21 +146,22 @@ void HelloWorldWindow::draw(SkCanvas* canvas) { |
if (kRaster_DeviceType == fType) { |
// need to send the raster bits to the (gpu) window |
- sk_sp<SkImage> snap = fSurface->makeImageSnapshot(); |
+ sk_sp<SkImage> snap = fRasterSurface->makeImageSnapshot(); |
SkPixmap pmap; |
if (snap->peekPixels(&pmap)) { |
const SkImageInfo& info = pmap.info(); |
- fRenderTarget->writePixels(0, 0, snap->width(), snap->height(), |
- SkImageInfo2GrPixelConfig(info, *fContext->caps()), |
- pmap.addr(), pmap.rowBytes(), |
- GrContext::kFlushWrites_PixelOp); |
+ |
+ SkCanvas* canvas = fGpuSurface->getCanvas(); |
+ |
+ canvas->writePixels(info, pmap.addr(), pmap.rowBytes(), 0, 0); |
+ canvas->flush(); |
} |
} |
INHERITED::present(); |
} |
void HelloWorldWindow::onSizeChange() { |
- setUpRenderTarget(); |
+ this->setUpGpuBackedSurface(); |
} |
bool HelloWorldWindow::onHandleChar(SkUnichar unichar) { |