diff pidgin/plugins/crazychat/cc_gtk_gl.h @ 15374:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/crazychat/cc_gtk_gl.h	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,50 @@
+#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);