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 "gtk_glue.h"
00020
00021 #include <gtk/gtk.h>
00022 #include <gdk/gdk.h>
00023
00024 # include <cairo.h>
00025
00026 namespace gnash
00027 {
00028
00029 class GtkCairoGlue : public GtkGlue
00030 {
00031 public:
00032 GtkCairoGlue();
00033 ~GtkCairoGlue();
00034
00035 bool init(int argc, char ***argv);
00036 bool needsDrawingArea() { return true; };
00037 void prepDrawingArea(GtkWidget *drawing_area);
00038 Renderer* createRenderHandler();
00039 void beforeRendering();
00040 void render();
00041 void render(int minx, int miny, int maxx, int maxy);
00042 void configure(GtkWidget *const widget, GdkEventConfigure *const event);
00043 private:
00044 cairo_surface_t* createGdkImageSurface(const int& width, const int& height);
00045 cairo_surface_t* createSimilarSurface(const int& width, const int& height);
00046 cairo_surface_t* createMemorySurface(const int& width, const int& height);
00047
00048 cairo_t* _cairo_handle;
00049 cairo_t* _cairo_offscreen;
00050 Renderer* _renderer;
00051 GdkImage* _image;
00052 };
00053
00054 }