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 #ifndef FB_GLUE_OVG_H
00020 #define FB_GLUE_OVG_H 1
00021
00022 #ifdef HAVE_CONFIG_H
00023 #include "gnashconfig.h"
00024 #endif
00025
00026 #include <boost/cstdint.hpp>
00027 #include "openvg/OpenVGRenderer.h"
00028 #include "fbsup.h"
00029 #include "fb_glue.h"
00030
00031 #ifdef HAVE_VG_OPENVG_H
00032 #include <VG/openvg.h>
00033 #endif
00034
00035 #ifdef BUILD_RAWFB_DEVICE
00036 # include "rawfb/RawFBDevice.h"
00037 #endif
00038
00039 #ifdef BUILD_EGL_DEVICE
00040 # include "egl/eglDevice.h"
00041 #endif
00042
00043 namespace gnash {
00044
00045 namespace gui {
00046
00047 class render_handler;
00048
00049 class FBOvgGlue : public FBGlue
00050 {
00051
00052 public:
00053 FBOvgGlue() {};
00054 FBOvgGlue(int fd);
00055
00056 ~FBOvgGlue();
00057
00058 bool init(int argc, char ***argv);
00059 void render();
00060
00061
00062 void draw();
00063 Renderer* createRenderHandler();
00064 void setInvalidatedRegions(const InvalidatedRanges &ranges);
00065
00068 void prepDrawingArea(void *drawing_area);
00069
00070 void initBuffer(int width, int height);
00071 void resize(int width, int height);
00072
00073
00074
00075
00076
00077
00078 int width() { return _width; };
00079 int height() { return _height; };
00080 int stride() { return _stride; };
00081
00082
00083 size_t getBounds() { return _drawbounds.size(); };
00084
00085 private:
00086 int _stride;
00087 int _width;
00088 int _height;
00089
00090
00091 std::vector< geometry::Range2d<int> > _drawbounds;
00092 geometry::Range2d<int> _validbounds;
00093
00094
00095
00096
00097
00098
00099 #ifdef BUILD_RAWFB_DEVICE
00100 renderer::rawfb::RawFBDevice _display;
00101 #else
00102 # ifdef BUILD_X11_DEVICE
00103 renderer::x11::X11Device _display;
00104 # endif
00105 #endif
00106 };
00107
00108 }
00109 }
00110
00111 #endif // end of FB_GLUE_OVG_H
00112
00113
00114
00115
00116