From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / hacks / glx / atunnel.c
index 04391a13e19cde28b46761204a320d29b0d99e81..f21d04fd5d964e6915b4ab20f53c9f08ee8c2139 100644 (file)
@@ -60,24 +60,15 @@ static const char sccsid[] = "@(#)atunnel.c 5.13 2004/05/25 xlockmore";
 
 #if defined( USE_XPM ) || defined( USE_XPMINC ) || defined(STANDALONE)
 /* USE_XPM & USE_XPMINC in xlock mode ; STANDALONE in xscreensaver mode */
-#include "xpm-ximage.h"
+#include "ximage-loader.h"
 #define I_HAVE_XPM
 
-#ifdef STANDALONE
-#include "../images/tunnel0.xpm"
-#include "../images/tunnel1.xpm"
-#include "../images/tunnel2.xpm"
-#include "../images/tunnel3.xpm"
-#include "../images/tunnel4.xpm"
-#include "../images/tunnel5.xpm"
-#else /* !STANDALONE */
-#include "pixmaps/tunnel0.xpm"
-#include "pixmaps/tunnel1.xpm"
-#include "pixmaps/tunnel2.xpm"
-#include "pixmaps/tunnel3.xpm"
-#include "pixmaps/tunnel4.xpm"
-#include "pixmaps/tunnel5.xpm"
-#endif /* !STANDALONE */
+#include "images/gen/tunnel0_png.h"
+#include "images/gen/tunnel1_png.h"
+#include "images/gen/tunnel2_png.h"
+#include "images/gen/tunnel3_png.h"
+#include "images/gen/tunnel4_png.h"
+#include "images/gen/tunnel5_png.h"
 #endif /* HAVE_XPM */
 
 
@@ -136,14 +127,17 @@ typedef struct {
 static atunnelstruct *Atunnel = NULL;
 
 /*=================== Load Texture =========================================*/
-static void LoadTexture(ModeInfo * mi, char **fn, int t_num)
+static void LoadTexture(ModeInfo * mi,
+                        const unsigned char *data, unsigned long size,
+                        int t_num)
 {
 #if defined( I_HAVE_XPM )
        atunnelstruct *sa = &Atunnel[MI_SCREEN(mi)];
        XImage *teximage;    /* Texture data */
  
-        if ((teximage = xpm_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
-                        MI_COLORMAP(mi), fn)) == None) {
+        if ((teximage = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+                                             data, size))
+            == None) {
            (void) fprintf(stderr, "Error reading the texture.\n");
            glDeleteTextures(1, &sa->texture[t_num]);
             do_texture = False;
@@ -160,10 +154,7 @@ static void LoadTexture(ModeInfo * mi, char **fn, int t_num)
        glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
        clear_gl_error();
        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, teximage->width, teximage->height, 
-                       0, GL_RGBA,
-                 /* GL_UNSIGNED_BYTE, */
-                 GL_UNSIGNED_INT_8_8_8_8_REV,
-                 teximage->data);
+                 0, GL_RGBA, GL_UNSIGNED_BYTE, teximage->data);
        check_gl_error("texture");
 
        /* Texture parameters, LINEAR scaling for better texture quality */
@@ -189,12 +180,12 @@ static void Init(ModeInfo * mi)
        if (do_texture)
        {
                glGenTextures(MAX_TEXTURE, sa->texture);
-               LoadTexture(mi, texture0,0);
-               LoadTexture(mi, texture1,1);
-               LoadTexture(mi, texture2,2);
-               LoadTexture(mi, texture3,3);
-               LoadTexture(mi, texture4,4);
-               LoadTexture(mi, texture5,5);
+               LoadTexture(mi, tunnel0_png, sizeof(tunnel0_png),0);
+               LoadTexture(mi, tunnel1_png, sizeof(tunnel1_png),1);
+               LoadTexture(mi, tunnel2_png, sizeof(tunnel2_png),2);
+               LoadTexture(mi, tunnel3_png, sizeof(tunnel3_png),3);
+               LoadTexture(mi, tunnel4_png, sizeof(tunnel4_png),4);
+               LoadTexture(mi, tunnel5_png, sizeof(tunnel5_png),5);
                glEnable(GL_TEXTURE_2D);
        }
        sa->ts = atunnel_InitTunnel();