• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
updateImage()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