/* 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 */
}
tr0, tr1,
tl0, tl1,
l0 , l1 ,
- bl0, depth=0.3, zdepth=15.0;
+ depth=0.3, zdepth=15.0;
/* zdepth is how far back tunnel goes */
/* depth is tex coord scale. low number = fast texture shifting */
tl1 = tl0 + half_floor;
l0 = tr1;
l1 = l0 + full_wall;
- bl0 = l1;
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
by = by * 2;
}
+#ifndef HAVE_JWZGLES
if (rescale) {
tmpbuf = calloc(bx * by * 4, sizeof(unsigned char));
if (gluScaleImage(GL_RGBA, teximage->width, teximage->height, GL_UNSIGNED_BYTE, teximage->data,
teximage->height= by;
}
/* end rescale code */
+#endif /* !HAVE_JWZGLES */
if (anegative ) {
for (ix = 0 ; ix < teximage->height * teximage->width; ix++)
tmpa = teximage->data[dtaidx + cchan];
tmpfa = (float) tmpa * boxdiv;
/* box filter */
- blursum = 0.0;
for (by = -boxsize ; by <= boxsize; by++) {
for (bx = -boxsize ; bx <= boxsize; bx++) {
indx = wrapVal(ix + bx, 0, teximage->width);
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);
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ wire = 0;
+# endif
+
if (!tconf) {
tconf = (tunnel_configuration *)
calloc (MI_NUM_SCREENS(mi), sizeof (tunnel_configuration));
fprintf(stderr, "%s: out of memory\n", progname);
exit(1);
}
-
- tc = &tconf[MI_SCREEN(mi)];
}
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));