~ubuntu-branches/ubuntu/maverick/gnash/maverick

« back to all changes in this revision

Viewing changes to gui/aos4_cairo_glue.h

  • Committer: Bazaar Package Importer
  • Author(s): Sindhudweep Narayan Sarkar
  • Date: 2009-10-07 00:06:10 UTC
  • mfrom: (1.1.12 upstream)
  • Revision ID: james.westby@ubuntu.com-20091007000610-mj9rwqe774gizn1j
Tags: 0.8.6-0ubuntu1
new upstream release 0.8.6 (LP: #435897)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
//   Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
3
//
 
4
// This program is free software; you can redistribute it and/or modify
 
5
// it under the terms of the GNU General Public License as published by
 
6
// the Free Software Foundation; either version 3 of the License, or
 
7
// (at your option) any later version.
 
8
//
 
9
// This program is distributed in the hope that it will be useful,
 
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
// GNU General Public License for more details.
 
13
//
 
14
// You should have received a copy of the GNU General Public License
 
15
// along with this program; if not, write to the Free Software
 
16
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
#include "aos4_glue.h"
 
19
#include "gnash.h"
 
20
#undef ACTION_END
 
21
#include "Renderer.h"
 
22
#include "Renderer_cairo.h"
 
23
 
 
24
#include <proto/intuition.h>
 
25
#include <proto/graphics.h>
 
26
#include <graphics/blitattr.h>
 
27
#include <proto/Picasso96API.h>
 
28
#include <proto/layers.h>
 
29
#include <proto/dos.h>
 
30
#include <proto/gadtools.h>
 
31
 
 
32
#include <cairo.h>
 
33
 
 
34
#include <boost/cstdint.hpp> // for boost::?int??_t
 
35
#include <vector>
 
36
 
 
37
namespace gnash
 
38
{
 
39
        class AOS4CairoGlue : public AOS4Glue
 
40
        {
 
41
          public:
 
42
        AOS4CairoGlue();
 
43
            virtual ~AOS4CairoGlue();
 
44
 
 
45
        bool                             init(int argc, char **argv[]);
 
46
            Renderer                    *createRenderHandler(int depth);
 
47
        Renderer                        *createRenderHandler();
 
48
            bool                                 prepDrawingArea(int width, int height);
 
49
            void                                 render();
 
50
        void                             render(int minx, int miny, int maxx, int maxy);
 
51
            void                                 setInvalidatedRegions(const InvalidatedRanges& ranges);
 
52
                struct Window           *getWindow(void);
 
53
                struct Menu             *getMenu(void);
 
54
                void                             setFullscreen();
 
55
                void                             unsetFullscreen();
 
56
                void                             resize(int width, int height);
 
57
                void                             saveOrigiginalDimension(int width, int height);
 
58
         private:
 
59
        geometry::Range2d<int> _validbounds;
 
60
            std::vector< geometry::Range2d<int> > _drawbounds;
 
61
                cairo_surface_t         *_cairo_surface;
 
62
                cairo_t                 *_cairo_handle;
 
63
        unsigned char           *_offscreenbuf;
 
64
            Renderer                    *_cairo_renderer;
 
65
        struct Window           *_window;
 
66
        struct Screen           *_screen;
 
67
                bool                             _fullscreen;
 
68
                int                              _width;
 
69
        int                              _orig_width;
 
70
            int                                  _height;
 
71
            int                                  _orig_height;
 
72
        int                                      _stride;
 
73
                int                                      _btype;
 
74
                cairo_format_t           _ctype;
 
75
                struct Menu             *_menu;
 
76
                RGBFTYPE                         _ftype;
 
77
        };
 
78
}
 
79