From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / hacks / glx / bouncingcow.c
index 2229f7157d13c1a043e74bc6fd4901267112e221..6f9b45d7032a1108f7f204bc7009c377c6f5979e 100644 (file)
@@ -1,4 +1,4 @@
-/* bouncingcow, Copyright (c) 2003-2014 Jamie Zawinski <jwz@jwz.org>
+/* bouncingcow, Copyright (c) 2003-2018 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
@@ -32,7 +32,7 @@
 #include "xlockmore.h"
 #include "rotator.h"
 #include "gltrackball.h"
-#include "xpm-ximage.h"
+#include "ximage-loader.h"
 #include <ctype.h>
 
 #ifdef USE_GL /* whole file */
@@ -202,7 +202,6 @@ load_texture (ModeInfo *mi, const char *filename)
 {
   Display *dpy = mi->dpy;
   Visual *visual = mi->xgwa.visual;
-  Colormap cmap = mi->xgwa.colormap;
   char buf[1024];
   XImage *image;
 
@@ -217,16 +216,13 @@ load_texture (ModeInfo *mi, const char *filename)
       return False;
     }
 
-  image = xpm_file_to_ximage (dpy, visual, cmap, filename);
+  image = file_to_ximage (dpy, visual, filename);
   if (!image) return False;
 
   clear_gl_error();
   glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
                 image->width, image->height, 0,
-                GL_RGBA,
-                /* GL_UNSIGNED_BYTE, */
-                GL_UNSIGNED_INT_8_8_8_8_REV,
-                image->data);
+                GL_RGBA, GL_UNSIGNED_BYTE, image->data);
   sprintf (buf, "texture: %.100s (%dx%d)",
            filename, image->width, image->height);
   check_gl_error(buf);
@@ -309,15 +305,15 @@ init_cow (ModeInfo *mi)
               glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
               glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
               glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-              glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-              glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+              glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
+              glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);
               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
               glEnable(GL_TEXTURE_GEN_S);
               glEnable(GL_TEXTURE_GEN_T);
               glEnable(GL_TEXTURE_2D);
 
-              /* approximately line it up with ../images/earth.xpm */
+              /* approximately line it up with ../images/earth.png */
               glMatrixMode (GL_TEXTURE);
               glLoadIdentity();
               glTranslatef (0.45, 0.58, 0);