| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 #include "SampleApp.h" | 7 #include "SampleApp.h" |
| 8 | 8 |
| 9 #include "SkData.h" | 9 #include "SkData.h" |
| 10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 } | 203 } |
| 204 AttachmentInfo attachmentInfo; | 204 AttachmentInfo attachmentInfo; |
| 205 bool result = win->attach(fBackend, msaaSampleCount, &attachmentInfo); | 205 bool result = win->attach(fBackend, msaaSampleCount, &attachmentInfo); |
| 206 if (!result) { | 206 if (!result) { |
| 207 SkDebugf("Failed to initialize GL"); | 207 SkDebugf("Failed to initialize GL"); |
| 208 return; | 208 return; |
| 209 } | 209 } |
| 210 fMSAASampleCount = msaaSampleCount; | 210 fMSAASampleCount = msaaSampleCount; |
| 211 | 211 |
| 212 SkASSERT(NULL == fCurIntf); | 212 SkASSERT(NULL == fCurIntf); |
| 213 SkAutoTUnref<const GrGLInterface> glInterface; |
| 213 switch (win->getDeviceType()) { | 214 switch (win->getDeviceType()) { |
| 214 case kRaster_DeviceType: | 215 case kRaster_DeviceType: |
| 215 // fallthrough | 216 // fallthrough |
| 216 case kPicture_DeviceType: | 217 case kPicture_DeviceType: |
| 217 // fallthrough | 218 // fallthrough |
| 218 case kGPU_DeviceType: | 219 case kGPU_DeviceType: |
| 219 // all these guys use the native interface | 220 // all these guys use the native interface |
| 220 fCurIntf = GrGLCreateNativeInterface(); | 221 glInterface.reset(GrGLCreateNativeInterface()); |
| 221 break; | 222 break; |
| 222 #if SK_ANGLE | 223 #if SK_ANGLE |
| 223 case kANGLE_DeviceType: | 224 case kANGLE_DeviceType: |
| 224 fCurIntf = GrGLCreateANGLEInterface(); | 225 glInterface.reset(GrGLCreateANGLEInterface()); |
| 225 break; | 226 break; |
| 226 #endif // SK_ANGLE | 227 #endif // SK_ANGLE |
| 227 case kNullGPU_DeviceType: | 228 case kNullGPU_DeviceType: |
| 228 fCurIntf = GrGLCreateNullInterface(); | 229 glInterface.reset(GrGLCreateNullInterface()); |
| 229 break; | 230 break; |
| 230 default: | 231 default: |
| 231 SkASSERT(false); | 232 SkASSERT(false); |
| 232 break; | 233 break; |
| 233 } | 234 } |
| 234 | 235 |
| 236 // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device t
ype that is skipped |
| 237 // when the driver doesn't support NVPR. |
| 238 fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); |
| 239 |
| 235 SkASSERT(NULL == fCurContext); | 240 SkASSERT(NULL == fCurContext); |
| 236 fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fC
urIntf); | 241 fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fC
urIntf); |
| 237 | 242 |
| 238 if (NULL == fCurContext || NULL == fCurIntf) { | 243 if (NULL == fCurContext || NULL == fCurIntf) { |
| 239 // We need some context and interface to see results | 244 // We need some context and interface to see results |
| 240 SkSafeUnref(fCurContext); | 245 SkSafeUnref(fCurContext); |
| 241 SkSafeUnref(fCurIntf); | 246 SkSafeUnref(fCurIntf); |
| 247 fCurContext = NULL; |
| 248 fCurIntf = NULL; |
| 242 SkDebugf("Failed to setup 3D"); | 249 SkDebugf("Failed to setup 3D"); |
| 243 | 250 |
| 244 win->detach(); | 251 win->detach(); |
| 245 } | 252 } |
| 246 #endif // SK_SUPPORT_GPU | 253 #endif // SK_SUPPORT_GPU |
| 247 // call windowSizeChanged to create the render target | 254 // call windowSizeChanged to create the render target |
| 248 this->windowSizeChanged(win); | 255 this->windowSizeChanged(win); |
| 249 } | 256 } |
| 250 | 257 |
| 251 virtual void tearDownBackend(SampleWindow *win) { | 258 virtual void tearDownBackend(SampleWindow *win) { |
| (...skipping 2351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2603 SkGraphics::Init(); | 2610 SkGraphics::Init(); |
| 2604 SkEvent::Init(); | 2611 SkEvent::Init(); |
| 2605 } | 2612 } |
| 2606 | 2613 |
| 2607 // FIXME: this should be in a header | 2614 // FIXME: this should be in a header |
| 2608 void application_term(); | 2615 void application_term(); |
| 2609 void application_term() { | 2616 void application_term() { |
| 2610 SkEvent::Term(); | 2617 SkEvent::Term(); |
| 2611 SkGraphics::Term(); | 2618 SkGraphics::Term(); |
| 2612 } | 2619 } |
| OLD | NEW |