1ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 2ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com/* 3ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com * Copyright 2012 Google Inc. 4ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com * 5ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com * Use of this source code is governed by a BSD-style license that can be 6ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com * found in the LICENSE file. 7ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com */ 8ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 9ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 10ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#ifndef SKGLWIDGET_H_ 11ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#define SKGLWIDGET_H_ 12ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 13e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#if SK_SUPPORT_GPU 14e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com 15ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include <QtOpenGL/QGLWidget> 16ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "SkDebugCanvas.h" 17607357fde8a9c4c70549d4223e0bd1181b012e0echudy@google.com#include "SkDebugger.h" 18ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "SkDevice.h" 19ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "SkGpuDevice.h" 20ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "GrContext.h" 21ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "gl/GrGLInterface.h" 22ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "gl/GrGLUtil.h" 23ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#include "GrRenderTarget.h" 24ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 25ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.comclass SkGLWidget : public QGLWidget { 26a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.comQ_OBJECT 27ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 28ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.compublic: 29607357fde8a9c4c70549d4223e0bd1181b012e0echudy@google.com SkGLWidget(SkDebugger* debugger); 30ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 31ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com ~SkGLWidget(); 32ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 33607357fde8a9c4c70549d4223e0bd1181b012e0echudy@google.com void draw() { 34ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com this->updateGL(); 35ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com } 36fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org void setSampleCount(int sampleCount); 37ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 38a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.comsignals: 39a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com void drawComplete(); 40a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com 41ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.comprotected: 42ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com void initializeGL(); 43ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com void resizeGL(int w, int h); 44ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com void paintGL(); 45ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 46ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 47ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.comprivate: 48ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com const GrGLInterface* fCurIntf; 49ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com GrContext* fCurContext; 50ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com SkGpuDevice* fGpuDevice; 51ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com SkCanvas* fCanvas; 52607357fde8a9c4c70549d4223e0bd1181b012e0echudy@google.com SkDebugger* fDebugger; 5316e3ddea6a80972aced04b21b1d66377fa95e7c7bsalomon@google.com GrBackendRenderTargetDesc getDesc(int w, int h); 54ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com}; 55ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 56e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#endif /* SK_SUPPORT_GPU */ 57e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com 58ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com#endif /* SKGLWIDGET_H_ */ 59