1 // 2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 3 // 2011 Free Software Foundation, Inc 4 // 5 // This program is free software; you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation; either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 19 #ifndef GNASH_KDE4_AGG_GLUE_H 20 #define GNASH_KDE4_AGG_GLUE_H 21 22 23 #ifdef HAVE_CONFIG_H 24 #include "gnashconfig.h" 25 #endif 26 27 #include "Qt4Glue.h" 28 29 #include <memory> 30 #include <QImage> 31 #include <QPainter> 32 #include "snappingrange.h" 33 34 class QRect; 35 36 namespace gnash 37 { 38 39 class Qt4AggGlue : public Qt4Glue 40 { 41 public: 42 Qt4AggGlue(); 43 ~Qt4AggGlue(); 44 45 bool init(int argc, char **argv[]); 46 void prepDrawingArea(DrawingWidget *drawing_area); 47 Renderer* createRenderHandler(); 48 void initBuffer(int width, int height); 49 void resize(int width, int height); 50 void render(); 51 void render(const QRect& updateRect); 52 53 private: 54 int _width; 55 int _height; 56 std::unique_ptr<unsigned char[]> _offscreenbuf; 57 Renderer* _renderer; // We don't own this pointer. 58 std::unique_ptr<QImage> _image; 59 std::unique_ptr<QPainter> _painter; 60 }; 61 62 63 } 64 65 #endif 66