| Index: debugger/QT/SkGLWidget.cpp
|
| ===================================================================
|
| --- debugger/QT/SkGLWidget.cpp (revision 9826)
|
| +++ debugger/QT/SkGLWidget.cpp (working copy)
|
| @@ -29,6 +29,9 @@
|
|
|
| void SkGLWidget::initializeGL() {
|
| fCurIntf = GrGLCreateNativeInterface();
|
| + if (!fCurIntf) {
|
| + return;
|
| + }
|
| fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fCurIntf);
|
| GrBackendRenderTargetDesc desc = this->getDesc(this->width(), this->height());
|
| desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
|
| @@ -43,19 +46,21 @@
|
| }
|
|
|
| void SkGLWidget::resizeGL(int w, int h) {
|
| - GrBackendRenderTargetDesc desc = this->getDesc(w, h);
|
| - desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
|
| - GrRenderTarget* curRenderTarget = fCurContext->wrapBackendRenderTarget(desc);
|
| - SkSafeUnref(fGpuDevice);
|
| - SkSafeUnref(fCanvas);
|
| - fGpuDevice = new SkGpuDevice(fCurContext, curRenderTarget);
|
| - fCanvas = new SkCanvas(fGpuDevice);
|
| + if (fCurContext) {
|
| + GrBackendRenderTargetDesc desc = this->getDesc(w, h);
|
| + desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
|
| + GrRenderTarget* curRenderTarget = fCurContext->wrapBackendRenderTarget(desc);
|
| + SkSafeUnref(fGpuDevice);
|
| + SkSafeUnref(fCanvas);
|
| + fGpuDevice = new SkGpuDevice(fCurContext, curRenderTarget);
|
| + fCanvas = new SkCanvas(fGpuDevice);
|
| + }
|
| fDebugger->resize(w, h);
|
| draw();
|
| }
|
|
|
| void SkGLWidget::paintGL() {
|
| - if (!this->isHidden()) {
|
| + if (!this->isHidden() && fCanvas) {
|
| fDebugger->draw(fCanvas);
|
| // TODO(chudy): Implement an optional flush button in Gui.
|
| fCanvas->flush();
|
|
|