Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "aos4_glue.h"
00020 #include "gnash.h"
00021 #undef ACTION_END
00022 #include "Renderer.h"
00023 #include "Renderer_agg.h"
00024
00025 #include <proto/intuition.h>
00026 #include <proto/graphics.h>
00027 #include <graphics/blitattr.h>
00028 #include <proto/Picasso96API.h>
00029 #include <proto/layers.h>
00030 #include <proto/dos.h>
00031 #include <proto/gadtools.h>
00032
00033 #include <boost/cstdint.hpp>
00034 #include <vector>
00035
00036 namespace gnash
00037 {
00038 class AOS4AggGlue : public AOS4Glue
00039 {
00040 public:
00041 AOS4AggGlue();
00042 virtual ~AOS4AggGlue();
00043
00044 bool init(int argc, char **argv[]);
00045 Renderer *createRenderHandler(int depth);
00046 Renderer *createRenderHandler();
00047 bool prepDrawingArea(int width, int height);
00048 void render();
00049 void render(int minx, int miny, int maxx, int maxy);
00050 void setInvalidatedRegions(const InvalidatedRanges& ranges);
00051 struct Window *getWindow(void);
00052 struct Menu *getMenu(void);
00053 void setFullscreen();
00054 void unsetFullscreen();
00055 void resize(int width, int height);
00056 void saveOrigiginalDimension(int width, int height, int xPosition, int yPosition);
00057 private:
00058 geometry::Range2d<int> _validbounds;
00059 std::vector< geometry::Range2d<int> > _drawbounds;
00060 unsigned char *_offscreenbuf;
00061 Renderer *_agg_renderer;
00062 struct Window *_window;
00063 struct Screen *_screen;
00064 bool _fullscreen;
00065 int _width;
00066 int _orig_width;
00067 int _height;
00068 int _orig_height;
00069 int _xPosition;
00070 int _orig_xPosition;
00071 int _yPosition;
00072 int _orig_yPosition;
00073 int _stride;
00074 int _btype;
00075 struct Menu *_menu;
00076 RGBFTYPE _ftype;
00077 };
00078 }