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; | |
214 switch (win->getDeviceType()) { | 213 switch (win->getDeviceType()) { |
215 case kRaster_DeviceType: | 214 case kRaster_DeviceType: |
216 // fallthrough | 215 // fallthrough |
217 case kPicture_DeviceType: | 216 case kPicture_DeviceType: |
218 // fallthrough | 217 // fallthrough |
219 case kGPU_DeviceType: | 218 case kGPU_DeviceType: |
220 // all these guys use the native interface | 219 // all these guys use the native interface |
221 glInterface.reset(GrGLCreateNativeInterface()); | 220 fCurIntf = GrGLCreateNativeInterface(); |
222 break; | 221 break; |
223 #if SK_ANGLE | 222 #if SK_ANGLE |
224 case kANGLE_DeviceType: | 223 case kANGLE_DeviceType: |
225 glInterface.reset(GrGLCreateANGLEInterface()); | 224 fCurIntf = GrGLCreateANGLEInterface(); |
226 break; | 225 break; |
227 #endif // SK_ANGLE | 226 #endif // SK_ANGLE |
228 case kNullGPU_DeviceType: | 227 case kNullGPU_DeviceType: |
229 glInterface.reset(GrGLCreateNullInterface()); | 228 fCurIntf = GrGLCreateNullInterface(); |
230 break; | 229 break; |
231 default: | 230 default: |
232 SkASSERT(false); | 231 SkASSERT(false); |
233 break; | 232 break; |
234 } | 233 } |
235 | 234 |
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 | |
240 SkASSERT(NULL == fCurContext); | 235 SkASSERT(NULL == fCurContext); |
241 fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fC
urIntf); | 236 fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fC
urIntf); |
242 | 237 |
243 if (NULL == fCurContext || NULL == fCurIntf) { | 238 if (NULL == fCurContext || NULL == fCurIntf) { |
244 // We need some context and interface to see results | 239 // We need some context and interface to see results |
245 SkSafeUnref(fCurContext); | 240 SkSafeUnref(fCurContext); |
246 SkSafeUnref(fCurIntf); | 241 SkSafeUnref(fCurIntf); |
247 fCurContext = NULL; | |
248 fCurIntf = NULL; | |
249 SkDebugf("Failed to setup 3D"); | 242 SkDebugf("Failed to setup 3D"); |
250 | 243 |
251 win->detach(); | 244 win->detach(); |
252 } | 245 } |
253 #endif // SK_SUPPORT_GPU | 246 #endif // SK_SUPPORT_GPU |
254 // call windowSizeChanged to create the render target | 247 // call windowSizeChanged to create the render target |
255 this->windowSizeChanged(win); | 248 this->windowSizeChanged(win); |
256 } | 249 } |
257 | 250 |
258 virtual void tearDownBackend(SampleWindow *win) { | 251 virtual void tearDownBackend(SampleWindow *win) { |
(...skipping 2351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2610 SkGraphics::Init(); | 2603 SkGraphics::Init(); |
2611 SkEvent::Init(); | 2604 SkEvent::Init(); |
2612 } | 2605 } |
2613 | 2606 |
2614 // FIXME: this should be in a header | 2607 // FIXME: this should be in a header |
2615 void application_term(); | 2608 void application_term(); |
2616 void application_term() { | 2609 void application_term() { |
2617 SkEvent::Term(); | 2610 SkEvent::Term(); |
2618 SkGraphics::Term(); | 2611 SkGraphics::Term(); |
2619 } | 2612 } |
OLD | NEW |