aboutsummaryrefslogtreecommitdiffstats
path: root/minilibx-bsd/mlx_destroy_image.c
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx-bsd/mlx_destroy_image.c')
-rw-r--r--minilibx-bsd/mlx_destroy_image.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/minilibx-bsd/mlx_destroy_image.c b/minilibx-bsd/mlx_destroy_image.c
new file mode 100644
index 0000000..afd4d1a
--- /dev/null
+++ b/minilibx-bsd/mlx_destroy_image.c
@@ -0,0 +1,31 @@
+/*
+** mlx_destroy_image.c for MinilibX in
+**
+** Made by Charlie Root
+** Login <ol@epitech.net>
+**
+** Started on Tue Mar 12 10:25:15 2002 Charlie Root
+** Last update Tue May 15 16:45:54 2007 Olivier Crouzet
+*/
+
+
+#include "mlx_int.h"
+
+
+int mlx_destroy_image(t_xvar *xvar, t_img *img)
+{
+ if (img->type == MLX_TYPE_SHM_PIXMAP ||
+ img->type == MLX_TYPE_SHM)
+ {
+ XShmDetach(xvar->display, &(img->shm));
+ shmdt(img->shm.shmaddr);
+ /* shmctl IPC_RMID already done */
+ }
+ XDestroyImage(img->image); /* For image & shm-image. Also free img->data */
+ XFreePixmap(xvar->display, img->pix);
+ if (img->gc)
+ XFreeGC(xvar->display, img->gc);
+ free(img);
+ if (xvar->do_flush)
+ XFlush(xvar->display);
+}