# define PROGCLASS "Screensaver"
# define HACK_INIT init_screensaver
# define HACK_DRAW draw_screensaver
+# define HACK_RESHAPE reshape_screensaver
# define screensaver_opts xlockmore_opts
-#define DEFAULTS "*light: True \n" \
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*light: True \n" \
"*wire: False \n" \
"*texture: False \n" \
"*image: BUILTIN \n" \
#ifdef USE_GL /* whole file */
-#ifdef HAVE_XPM
-# include <X11/xpm.h>
-# ifndef PIXEL_ALREADY_TYPEDEFED
-# define PIXEL_ALREADY_TYPEDEFED /* Sigh, Xmu/Drawing.h needs this... */
-# endif
-#endif
-
#ifdef HAVE_XMU
# ifndef VMS
# include <X11/Xmu/Drawing.h>
# endif /* VMS */
#endif
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
format, GL_UNSIGNED_BYTE, image);
}
else {
+ clear_gl_error();
glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
format, GL_UNSIGNED_BYTE, image);
+ check_gl_error("texture");
}
free(image);
}
dd_lasty *= scale;
}
+ if (mi->fps_p) do_fps (mi);
glXSwapBuffers(display, window);
}
}
/* Standard reshape function */
-static void
-reshape(int width, int height)
+void
+reshape_screensaver(ModeInfo *mi, int width, int height)
{
global_width=width;
global_height=height;
}
/* main OpenGL initialization routine */
-void initializeGL(GLsizei width, GLsizei height)
+void
+initializeGL(ModeInfo *mi, GLsizei width, GLsizei height)
{
int style;
int mode;
- reshape(width, height);
+ reshape_screensaver(mi, width, height);
glViewport( 0, 0, width, height );
glEnable(GL_DEPTH_TEST);
gp->window = MI_WINDOW(mi);
if ((gp->glx_context = init_GL(mi)) != NULL) {
- reshape(MI_WIDTH(mi), MI_HEIGHT(mi));
- initializeGL(MI_WIDTH(mi), MI_HEIGHT(mi));
+ reshape_screensaver(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
chooseScreensaverExample();
} else {
MI_CLEARWINDOW(mi);