/* xpm-ximage.c --- converts XPM data to an XImage for use with OpenGL.
- * xscreensaver, Copyright (c) 1998-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1998-2013 Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
#include <stdlib.h>
#include <stdio.h>
-#ifdef HAVE_COCOA
+#ifdef HAVE_JWXYZ
# include "jwxyz.h"
#else
# include <X11/Xlib.h>
if (!initted)
{
#ifdef HAVE_GTK2
+#if !GLIB_CHECK_VERSION(2, 36 ,0)
g_type_init ();
+#endif
#endif
gdk_pixbuf_xlib_init (dpy, DefaultScreen (dpy));
xlib_rgb_init (dpy, DefaultScreenOfDisplay (dpy));
}
row += stride;
}
- gdk_pixbuf_unref (pb); /* #### does doing this free colors? */
+
+ /* #### are colors getting freed here? */
+ g_object_unref (pb);
return image;
}
if (filename)
{
xpm_data = 0;
- if (! XpmReadFileToData ((char *) filename, &xpm_data))
+ if (XpmSuccess != XpmReadFileToData ((char *) filename, &xpm_data))
{
fprintf (stderr, "%s: unable to read XPM file %s\n",
progname, filename);
/* Given a bitmask, returns the position and width of the field.
*/
static void
-decode_mask (unsigned int mask, unsigned int *pos_ret, unsigned int *size_ret)
+decode_mask (unsigned long mask, unsigned long *pos_ret,
+ unsigned long *size_ret)
{
int i;
for (i = 0; i < 32; i++)
int npixels = 0;
int bpl;
- unsigned int rpos=0, gpos=0, bpos=0, apos=0;
- unsigned int rmsk=0, gmsk=0, bmsk=0, amsk=0;
- unsigned int rsiz=0, gsiz=0, bsiz=0, asiz=0;
+ unsigned long rpos=0, gpos=0, bpos=0, apos=0;
+ unsigned long rmsk=0, gmsk=0, bmsk=0, amsk=0;
+ unsigned long rsiz=0, gsiz=0, bsiz=0, asiz=0;
if (filename)
{
for (x = 0; x < ximage->width; x++)
{
- unsigned long pixel = iline[x];
+ unsigned int pixel = iline[x];
unsigned char r = (pixel & rmsk) >> rpos;
unsigned char g = (pixel & gmsk) >> gpos;
unsigned char b = (pixel & bmsk) >> bpos;