Home | History | Annotate | Download | only in QT
      1 
      2 /*
      3  * Copyright 2012 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #ifndef SKGLWIDGET_H_
     11 #define SKGLWIDGET_H_
     12 
     13 #if SK_SUPPORT_GPU
     14 
     15 #include <QtOpenGL/QGLWidget>
     16 #include "SkDebugCanvas.h"
     17 #include "SkDebugger.h"
     18 #include "SkDevice.h"
     19 #include "SkGpuDevice.h"
     20 #include "GrContext.h"
     21 #include "gl/GrGLInterface.h"
     22 #include "gl/GrGLUtil.h"
     23 #include "GrRenderTarget.h"
     24 
     25 class SkGLWidget : public QGLWidget {
     26 Q_OBJECT
     27 
     28 public:
     29     SkGLWidget(SkDebugger* debugger);
     30 
     31     ~SkGLWidget();
     32 
     33     void updateImage() {
     34         this->updateGL();
     35     }
     36     void setSampleCount(int sampleCount);
     37 
     38 signals:
     39     void drawComplete();
     40 
     41 protected:
     42     void initializeGL();
     43     void resizeGL(int w, int h);
     44     void paintGL();
     45 
     46 
     47 private:
     48     void createRenderTarget();
     49     SkAutoTUnref<const GrGLInterface> fCurIntf;
     50     SkAutoTUnref<GrContext> fCurContext;
     51     SkAutoTUnref<SkGpuDevice> fGpuDevice;
     52     SkAutoTUnref<SkCanvas> fCanvas;
     53     SkDebugger* fDebugger;
     54     GrBackendRenderTargetDesc getDesc(int w, int h);
     55 };
     56 
     57 #endif /* SK_SUPPORT_GPU */
     58 
     59 #endif /* SKGLWIDGET_H_ */
     60