/* timetunnel. Based on dangerball.c, hack by Sean Brennan <zettix@yahoo.com>*/
-/* dangerball, Copyright (c) 2001-2004 Jamie Zawinski <jwz@jwz.org>
+/* dangerball, Copyright (c) 2001-2014 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 "rotator.h"
#include "gltrackball.h"
-
#define DEF_START "0.00"
#define DEF_DILATE "1.00"
#define DEF_END "27.79"
{
tunnel_configuration *tc = &tconf[MI_SCREEN(mi)];
- if (event->xany.type == ButtonPress &&
- event->xbutton.button == Button1)
- {
- tc->button_down_p = True;
- gltrackball_start (tc->trackball,
- event->xbutton.x, event->xbutton.y,
- MI_WIDTH (mi), MI_HEIGHT (mi));
- return True;
- }
- else if (event->xany.type == ButtonRelease &&
- event->xbutton.button == Button1)
- {
- tc->button_down_p = False;
- return True;
- }
- else if (event->xany.type == ButtonPress &&
- (event->xbutton.button == Button4 ||
- event->xbutton.button == Button5))
- {
- gltrackball_mousewheel (tc->trackball, event->xbutton.button, 10,
- !!event->xbutton.state);
- return True;
- }
- else if (event->xany.type == MotionNotify &&
- tc->button_down_p)
- {
- gltrackball_track (tc->trackball,
- event->xmotion.x, event->xmotion.y,
- MI_WIDTH (mi), MI_HEIGHT (mi));
- return True;
- }
+ if (gltrackball_event_handler (event, tc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &tc->button_down_p))
+ return True;
return False;
}
GLuint tex, int blend_mode)
{
+#ifndef HAVE_JWZGLES
if (alpha > 0.0) {
mi->polygon_count ++;
/* glEnable(GL_BLEND); */
/* glDisable(GL_BLEND); */
}
+#endif /* !HAVE_JWZGLES */
} /* draw sign */
tunnel does not move, and is acutally a display list. if alpha = 0, skip */
static void draw_cyl(ModeInfo *mi, tunnel_configuration *tc, float alpha, int texnum, int listnum, int shiftnum)
{
+#ifndef HAVE_JWZGLES
if (alpha > 0.0) {
if (listnum == tc->diamondlist)
mi->polygon_count += 4;
glMatrixMode(GL_MODELVIEW);
/* glDisable(GL_BLEND); */
}
+#endif /* HAVE_JWZGLES */
}
}
if (rescale) {
+#ifndef HAVE_JWZGLES
tmpbuf = calloc(bx * by * 4, sizeof(unsigned char));
if (gluScaleImage(GL_RGBA, teximage->width, teximage->height, GL_UNSIGNED_BYTE, teximage->data,
bx, by, GL_UNSIGNED_BYTE, tmpbuf))
teximage->data = (char *) tmpbuf;
teximage->width = bx;
teximage->height= by;
+#endif /* !HAVE_JWZGLES */
}
/* end rescale code */
clear_gl_error();
#ifdef HAVE_GLBINDTEXTURE
glBindTexture(GL_TEXTURE_2D, texbind);
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glBindTexture! */
#endif
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, teximage->width, teximage->height,
wire = MI_IS_WIREFRAME(mi);
- if (!tconf) {
- tconf = (tunnel_configuration *)
- calloc (MI_NUM_SCREENS(mi), sizeof (tunnel_configuration));
- if (!tconf) {
- fprintf(stderr, "%s: out of memory\n", progname);
- exit(1);
- }
- }
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ wire = 0;
+# endif
+
+ MI_INIT (mi, tconf, NULL);
tc = &tconf[MI_SCREEN(mi)];
LoadTexture(mi, tunnelstar_xpm, NULL, tc->texture_binds[4], 0, 0.0, False, False);
if (strcasecmp (do_tx1, "(none)")) /* marquee */
LoadTexture(mi, NULL, do_tx1, tc->texture_binds[3], 0,0.0, False, False);
+#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */
else
LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[3], 0,0.0, False, False);
+#endif
if (strcasecmp (do_tx2, "(none)")) /* tardis */
LoadTexture(mi, NULL, do_tx2, tc->texture_binds[1], 0, 0.0 ,False, False);
+#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */
else
LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[1], 0,0.0, False, False);
+#endif
if (strcasecmp (do_tx3, "(none)")) { /* head */
LoadTexture(mi, NULL, do_tx3, tc->texture_binds[6], 0, 0.0 ,False, False);
/* negative */
LoadTexture(mi, NULL, do_tx3, tc->texture_binds[9], 2,1.0, True, True);
+#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */
} else {
LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[6], 0,0.0, False, False);
/* negative */
LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[9], 2,1.0, True, True);
+#endif
}
glEnable(GL_TEXTURE_2D);
check_gl_error("tex");
glAlphaFunc(GL_GREATER, 0.5);
}
- tc->trackball = gltrackball_init ();
+ tc->trackball = gltrackball_init (True);
tc->texshift = calloc(tc->num_texshifts, sizeof(GLfloat));