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 "SkGpuDevice.h"
     19 #include "GrBackendSurface.h"
     20 #include "GrContext.h"
     21 #include "gl/GrGLInterface.h"
     22 #include "gl/GrGLUtil.h"
     23 
     24 class SkGLWidget : public QGLWidget {
     25 Q_OBJECT
     26 
     27 public:
     28     SkGLWidget(SkDebugger* debugger);
     29 
     30     ~SkGLWidget();
     31 
     32     void updateImage() {
     33         this->updateGL();
     34     }
     35     void setSampleCount(int sampleCount);
     36 
     37 Q_SIGNALS:
     38     void drawComplete();
     39 
     40 protected:
     41     void initializeGL();
     42     void resizeGL(int w, int h);
     43     void paintGL();
     44 
     45 
     46 private:
     47     void createRenderTarget();
     48     sk_sp<const GrGLInterface> fCurIntf;
     49     sk_sp<GrContext> fCurContext;
     50 
     51     sk_sp<SkSurface> fGpuSurface;
     52     SkCanvas*        fCanvas;
     53 
     54     SkDebugger* fDebugger;
     55     GrBackendRenderTarget getBackendRenderTarget();
     56 };
     57 
     58 #endif /* SK_SUPPORT_GPU */
     59 
     60 #endif /* SKGLWIDGET_H_ */
     61