"*wireframe: False\n" \
"*suppressRotationAnimation: True\n" \
-# define refresh_jigglypuff 0
+# define free_jigglypuff 0
# define release_jigglypuff 0
# include "xlockmore.h"
#else
# include "config.h"
#endif
-#include "xpm-ximage.h"
+#include "ximage-loader.h"
#include "gltrackball.h"
-#include "../images/jigglymap.xpm"
+#include "images/gen/jigglymap_png.h"
#ifdef USE_GL
static void init_texture(ModeInfo *mi)
{
- XImage *img = xpm_to_ximage(mi->dpy, mi->xgwa.visual,
- mi->xgwa.colormap, jigglymap_xpm);
+ XImage *img = image_data_to_ximage(mi->dpy, mi->xgwa.visual,
+ jigglymap_png, sizeof(jigglymap_png));
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
img->width, img->height, 0, GL_RGBA,
ENTRYPOINT void reshape_jigglypuff(ModeInfo *mi, int width, int height)
{
- GLfloat aspect = (GLfloat)width / (GLfloat)height;
-
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-0.5*aspect, 0.5*aspect, -0.5, 0.5, 1, 20);
-/* glTranslatef(0, 0, -10);*/
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-0.5*(1/h), 0.5*(1/h), -0.5, 0.5, 1, 20);
}
ENTRYPOINT void draw_jigglypuff(ModeInfo *mi)
jigglystruct *js;
int subdivs;
- MI_INIT(mi, jss, NULL);
+ MI_INIT(mi, jss);
js = &jss[MI_SCREEN(mi)];