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