Mercurial > pidgin.yaz
view pidgin/plugins/crazychat/cc_gtk_gl.h @ 32310:142429bcb4c8
propagate from branch 'im.pidgin.pidgin' (head bb53d1e9201138b79a1eef0d4a7cda1fc852c59f)
to branch 'im.pidgin.pidgin.next.major' (head 85a38af15472bf17064bbe597f94f32ad167c4e6)
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 07 Aug 2011 05:19:54 +0000 |
parents | 5fe8042783c1 |
children |
line wrap: on
line source
#include <gtk/gtk.h> #include <gtk/gtkgl.h> #define DEFAULT_FRAME_DELAY 40 typedef void (gl_init_func) (GtkWidget *widget, void *data); typedef gboolean (*gl_config_func) (GtkWidget *widget, GdkEventConfigure *event, void *data); typedef gboolean (*gl_draw_func) (GtkWidget *widget, GdkEventExpose *event, void *data); struct draw_info { gboolean timeout; /* use/not use a timer callback */ int timer_id; /* glib timer callback id */ guint delay_ms; /* timer callback delay in ms */ void *data; /* drawing data */ }; struct window_box { GtkWidget *window; GtkWidget *vbox; GtkWidget *draw_area; }; /** * Initialize the gtkglext framework for all our widgets. * @return 0 on success, non-zero on failure */ int cc_init_gtk_gl(void); /** * Create a new OpenGL enabled window * @param init the initialize callback function * @param draw the drawing callback function * @param data drawing metadata * @param ret struct with returned window and vbox */ void cc_new_gl_window(gl_init_func init, gl_config_func config, gl_draw_func draw, struct draw_info *data, struct window_box *ret); /** * Create a new OpenGL enabled drawing area widget. * @param init the initialize callback function * @param draw the drawing callback function * @param data drawing metadata * @return the drawing widget */ GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config, gl_draw_func draw, struct draw_info *data);