summaryrefslogtreecommitdiffstats
path: root/Smoke/gtk.c
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2007-12-20 01:34:35 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2007-12-20 01:34:35 (GMT)
commit4aabbced4987d0321827e4ae8bbd2e928205c9ba (patch)
treebad531cdacb7b4ce76e19f467e0c90677654c548 /Smoke/gtk.c
parentc087310ffc1618cac7d0100b5492794f5d03db20 (diff)
download2iv35-4aabbced4987d0321827e4ae8bbd2e928205c9ba.zip
2iv35-4aabbced4987d0321827e4ae8bbd2e928205c9ba.tar.gz
2iv35-4aabbced4987d0321827e4ae8bbd2e928205c9ba.tar.bz2
moved alpha value constant to each of their own classes;
flowvis now draws copy of frame
Diffstat (limited to 'Smoke/gtk.c')
-rw-r--r--Smoke/gtk.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/Smoke/gtk.c b/Smoke/gtk.c
index df9a6ee..d17d4ad 100644
--- a/Smoke/gtk.c
+++ b/Smoke/gtk.c
@@ -96,7 +96,7 @@ static void toggle_animation (GtkWidget *widget);
static GdkGLConfig *configure_gl (void);
static GtkWidget *create_popup_menu (GtkWidget *drawing_area);
-static GtkWidget *create_window (GdkGLConfig *glconfig);
+static GtkWidget *create_window (GdkGLConfig *glconfig, fftw_real *field);
/**************************************************************************
@@ -179,6 +179,7 @@ expose_event (GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
+ fftw_real *field = (gpointer)data;
GdkGLContext *glcontext = gtk_widget_get_gl_context (widget);
GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget);
@@ -194,8 +195,8 @@ expose_event (GtkWidget *widget,
// fluids
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
- calculate_one_simulation_step();
- visualize();
+ calculate_one_simulation_step(field);
+ visualize(field);
// endf
/* Swap buffers */
@@ -604,7 +605,7 @@ create_popup_menu (GtkWidget *drawing_area)
*** drawing area that has an OpenGL-capable visual.
***/
static GtkWidget *
-create_window (GdkGLConfig *glconfig)
+create_window (GdkGLConfig *glconfig, fftw_real *field)
{
GtkWidget *window;
GtkWidget *hbox;
@@ -661,7 +662,7 @@ create_window (GdkGLConfig *glconfig)
g_signal_connect (G_OBJECT (drawing_area), "configure_event",
G_CALLBACK (configure_event), NULL);
g_signal_connect (G_OBJECT (drawing_area), "expose_event",
- G_CALLBACK (expose_event), NULL);
+ G_CALLBACK (expose_event), (gpointer)field);
g_signal_connect (G_OBJECT (drawing_area), "unrealize",
G_CALLBACK (unrealize), NULL);
@@ -841,9 +842,10 @@ main (int argc,
int i;
struct color4f colormap;
float value;
+ fftw_real *field;
/* Initialize the simulation */
- init_simulation(DIM);
+ field = init_simulation(DIM);
/* Initialize GTK. */
gtk_init (&argc, &argv);
@@ -855,7 +857,7 @@ main (int argc,
glconfig = configure_gl ();
/* Create and show the application window. */
- window = create_window (glconfig);
+ window = create_window (glconfig, field);
gtk_widget_show (window);
init_gl();