summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2008-01-10 12:03:07 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2008-01-10 12:03:07 (GMT)
commit148047d7dc230cda271b12a4f7388917038b6364 (patch)
treed5f1544bb550335134853e6f11f6529e9cba74fd
parentcac2c65e1b8ae9d407a5cffafbac06c0803753ac (diff)
download2iv35-148047d7dc230cda271b12a4f7388917038b6364.zip
2iv35-148047d7dc230cda271b12a4f7388917038b6364.tar.gz
2iv35-148047d7dc230cda271b12a4f7388917038b6364.tar.bz2
fixed memleak etc
-rw-r--r--Smoke/Makefile2
-rw-r--r--Smoke/fluids.c16
-rw-r--r--Smoke/fluids.h2
-rw-r--r--Smoke/renderer_gl.c7
-rw-r--r--Smoke/renderer_gl.h2
-rwxr-xr-xSmoke/smoke.binbin642974 -> 651564 bytes
6 files changed, 9 insertions, 20 deletions
diff --git a/Smoke/Makefile b/Smoke/Makefile
index 3908ca5..035cdcb 100644
--- a/Smoke/Makefile
+++ b/Smoke/Makefile
@@ -9,7 +9,7 @@ LINKOBJ_GLUT = fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o
LINKOBJ_GTK = funcs.o interact.o fluids.o normals.o smoke.o colormap.o glyphs.o divergence.o isolines.o heightplots.o seedpoint.o streamlines.o flowvis.o palette.o gtk_main.o gtk_colormap.o gtk_glyphs.o gtk_divergence.o gtk_isolines.o gtk_heightplots.o gtk_streamlines.o gtk_flowvis.o gtk.o renderer_gl.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
LIBS_GLUT = -lglut -lm
#INCS = -I"fftw-2.1.3/fftw" -I"fftw-2.1.3/rfftw"
-LIBS_GTK = -lglut -lm `pkg-config --libs gtk+-2.0` /usr/lib/libgdkglext-x11-1.0.so /usr/lib/libgtkglext-x11-1.0.so
+LIBS_GTK = -lm `pkg-config --libs gtk+-2.0` /usr/lib/libgdkglext-x11-1.0.so /usr/lib/libgtkglext-x11-1.0.so
INCS = -I"fftw-2.1.3/fftw" -I"fftw-2.1.3/rfftw" `pkg-config --cflags gtk+-2.0` -I/usr/include/gtkglext-1.0 -I/usr/lib/gtkglext-1.0/include
BIN = smoke.bin
diff --git a/Smoke/fluids.c b/Smoke/fluids.c
index 2a59ef1..cce2c38 100644
--- a/Smoke/fluids.c
+++ b/Smoke/fluids.c
@@ -9,6 +9,7 @@
#include <math.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <rfftw.h>
@@ -76,11 +77,11 @@ void fluids_init_simulation(int n, struct vis_data_arrays *vis_data)
plan_cr = rfftw2d_create_plan(n, n, FFTW_COMPLEX_TO_REAL, FFTW_IN_PLACE);
height_array = (fftw_real*) malloc(dim2);
- normal_array = (struct point*) malloc(dim2);
+ normal_array = (struct point*) malloc(dim2 *sizeof(struct point *));
for (i = 0; i < HISTORY_SIZE; i++)
{
- vis_data->history[i] = (fftw_real*)malloc(dim1);
+ vis_data->history[i] = (fftw_real *)malloc(dim1);
}
fluids_reset_simulation();
@@ -413,14 +414,8 @@ void add_history_frame(int dataset, struct vis_data_arrays *vis_data)
if (dataset != DATASET_HIST) {
frame = get_frame(vis_data, dataset);
-// printf("hisdex: %d\n", hisdex);
-
- // if (hisdex) {
- memcpy(vis_data->history[hisdex], frame, DIM * 2 * (DIM / 2) * sizeof(fftw_real));
- // } else {
- // memcpy(vis_data->history[0], frame, DIM * 2 * (DIM / 2) * sizeof(fftw_real));
- // memcpy(vis_data->history[hisdex], vis_data->history[0], DIM * 2 * (DIM / 2) * sizeof(fftw_real));
- // }
+
+ memcpy(vis_data->history[hisdex], frame, DIM * 2 * (DIM / 2 + 1) * sizeof(fftw_real));
hisdex = (hisdex >= HISTORY_SIZE -1) ? 0 : hisdex +1;
}
}
@@ -503,7 +498,6 @@ void fluids_calculate_one_simulation_step(struct vis_data_arrays *vis_data)
heightplots_set_frame(vis_data->height);
normals_set_frame(vis_data->normals);
- streamlines_set_history(vis_data->history);
}
//------ VISUALIZATION CODE STARTS HERE -----------------------------------------------------------------
diff --git a/Smoke/fluids.h b/Smoke/fluids.h
index bbb8112..589ee42 100644
--- a/Smoke/fluids.h
+++ b/Smoke/fluids.h
@@ -29,7 +29,7 @@ extern int frame_index;
#define VECTOR_VEL 0
#define VECTOR_FORCE 1
-#define HISTORY_SIZE 40
+#define HISTORY_SIZE 4
extern int winWidth, winHeight; //size of the graphics window, in pixels
extern int color_dir; //use direction color-coding or not
diff --git a/Smoke/renderer_gl.c b/Smoke/renderer_gl.c
index b26f119..b483272 100644
--- a/Smoke/renderer_gl.c
+++ b/Smoke/renderer_gl.c
@@ -63,12 +63,10 @@ static GLuint texture;
-GLuint renderer_load_texture(char *filename)
+void renderer_load_texture(char *filename)
{
- GLuint return_value;
FILE *bitmap;
- return_value = 0;
bitmap = fopen(filename, "rb");
if (bitmap > 0) {
@@ -97,13 +95,10 @@ GLuint renderer_load_texture(char *filename)
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, width, height, GL_BGR, GL_UNSIGNED_BYTE, imagedata);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- return_value = texture;
free(imagedata);
fclose(bitmap);
}
-
- return return_value;
}
diff --git a/Smoke/renderer_gl.h b/Smoke/renderer_gl.h
index 0b4f196..ecaa741 100644
--- a/Smoke/renderer_gl.h
+++ b/Smoke/renderer_gl.h
@@ -21,7 +21,7 @@ void renderer_reset_yaw(void);
void renderer_reset_pitch(void);
void renderer_reset_roll(void);
-GLuint renderer_load_texture(char *filename);
+void renderer_load_texture(char *filename);
extern float x_rot;
extern float y_rot;
diff --git a/Smoke/smoke.bin b/Smoke/smoke.bin
index c49cc29..44ccf31 100755
--- a/Smoke/smoke.bin
+++ b/Smoke/smoke.bin
Binary files differ