Avoid black flashes when resizing debugger window using MSAA

Avoid black flashes when resizing debugger window using MSAA. Clear the
stencil buffer always after resize. Also reset the GrContext state
when Qt calls resizeGL -- we do not know what GL state Qt changes.

Remove setting of white background to SkGLWidget, it is not
effective. QGLWidget does not respect the stylesheet.

Also move the initial stencil clearing before GrContext is created
in order to preserve GrContext state consistent with actual GL
state.

R=robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/192433003

git-svn-id: http://skia.googlecode.com/svn/trunk@13721 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/QT/SkGLWidget.cpp b/debugger/QT/SkGLWidget.cpp
index 9ebb105..019654f 100644
--- a/debugger/QT/SkGLWidget.cpp
+++ b/debugger/QT/SkGLWidget.cpp
@@ -12,7 +12,6 @@
 #if SK_SUPPORT_GPU
 
 SkGLWidget::SkGLWidget(SkDebugger* debugger) : QGLWidget() {
-    this->setStyleSheet("QWidget {background-color: white; border: 1px solid #cccccc;}");
     fDebugger = debugger;
     fCurIntf = NULL;
     fCurContext = NULL;
@@ -40,6 +39,10 @@
     if (!fCurIntf) {
         return;
     }
+    glStencilMask(0xffffffff);
+    glClearStencil(0);
+    glClear(GL_STENCIL_BUFFER_BIT);
+
     fCurContext = GrContext::Create(kOpenGL_GrBackend, (GrBackendContext) fCurIntf);
     GrBackendRenderTargetDesc desc = this->getDesc(this->width(), this->height());
     desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
@@ -47,14 +50,16 @@
     fGpuDevice = new SkGpuDevice(fCurContext, curRenderTarget);
     fCanvas = new SkCanvas(fGpuDevice);
     curRenderTarget->unref();
-
-    glClearColor(1, 1, 1, 0);
-    glClearStencil(0);
-    glClear(GL_STENCIL_BUFFER_BIT);
 }
 
 void SkGLWidget::resizeGL(int w, int h) {
     if (fCurContext) {
+        glDisable(GL_SCISSOR_TEST);
+        glStencilMask(0xffffffff);
+        glClearStencil(0);
+        glClear(GL_STENCIL_BUFFER_BIT);
+        fCurContext->resetContext();
+
         GrBackendRenderTargetDesc desc = this->getDesc(w, h);
         desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
         GrRenderTarget* curRenderTarget = fCurContext->wrapBackendRenderTarget(desc);