Index: samplecode/SampleApp.cpp |
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp |
index 127646d0d7ce815ec8ce3209178ec74cdd353db8..3b953f484693f4fcf21651d3b9f125e37554c2b3 100644 |
--- a/samplecode/SampleApp.cpp |
+++ b/samplecode/SampleApp.cpp |
@@ -210,6 +210,7 @@ public: |
fMSAASampleCount = msaaSampleCount; |
SkASSERT(NULL == fCurIntf); |
+ SkAutoTUnref<const GrGLInterface> glInterface; |
switch (win->getDeviceType()) { |
case kRaster_DeviceType: |
// fallthrough |
@@ -217,21 +218,25 @@ public: |
// fallthrough |
case kGPU_DeviceType: |
// all these guys use the native interface |
- fCurIntf = GrGLCreateNativeInterface(); |
+ glInterface.reset(GrGLCreateNativeInterface()); |
break; |
#if SK_ANGLE |
case kANGLE_DeviceType: |
- fCurIntf = GrGLCreateANGLEInterface(); |
+ glInterface.reset(GrGLCreateANGLEInterface()); |
break; |
#endif // SK_ANGLE |
case kNullGPU_DeviceType: |
- fCurIntf = GrGLCreateNullInterface(); |
+ glInterface.reset(GrGLCreateNullInterface()); |
break; |
default: |
SkASSERT(false); |
break; |
} |
+ // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device type that is skipped |
+ // when the driver doesn't support NVPR. |
+ fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); |
+ |
SkASSERT(NULL == fCurContext); |
fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fCurIntf); |
@@ -239,6 +244,8 @@ public: |
// We need some context and interface to see results |
SkSafeUnref(fCurContext); |
SkSafeUnref(fCurIntf); |
+ fCurContext = NULL; |
+ fCurIntf = NULL; |
SkDebugf("Failed to setup 3D"); |
win->detach(); |