#define EYE_PARTICLE_COUNT 2000
-#define LOOKUPSIZE 3600
+#define LOOKUPSIZE (3600/5) /* 3600 was way too much RAM on iOS */
#define EYELENGTH 300
#define EPSILON 0.0001
int x = mp->eyeparticles[i][1] + random()%(cos(mp->theta) < 0.0 ? 8 : 16);
/* reset if dead */
- if(x > EYELENGTH || random()%(cos(mp->theta) < 0.0 ? 40 : 10) == 0) {
+ if(x >= EYELENGTH || random()%(cos(mp->theta) < 0.0 ? 40 : 10) == 0) {
/* if(x > EYELENGTH || (x > EYELENGTH/(2/3.0) && random()%7 == 0)) { */
mp->eyeparticles[i][0] = random()%LOOKUPSIZE;
switch(event->xany.type) {
case ButtonPress:
-
switch(event->xbutton.button) {
-
- case Button1:
- mp->button_down_p = True;
- gltrackball_start(mp->trackball,
- event->xbutton.x, event->xbutton.y,
- MI_WIDTH (mi), MI_HEIGHT (mi));
- break;
-
case Button4:
mp->camera_velocity += 1.0;
- break;
-
+ return True;
case Button5:
mp->camera_velocity -= 1.0;
+ return True;
+ default:
break;
}
-
- break;
-
- case ButtonRelease:
-
- switch(event->xbutton.button) {
- case Button1:
- mp->button_down_p = False;
- break;
- }
-
- break;
-
- case MotionNotify:
- if(mp->button_down_p)
- gltrackball_track(mp->trackball,
- event->xmotion.x, event->xmotion.y,
- MI_WIDTH (mi), MI_HEIGHT (mi));
break;
-
default:
- return False;
+ break;
}
- return True;
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ return False;
}
ENTRYPOINT void init_providence(ModeInfo *mi)
return;
}
mp = &providence[MI_SCREEN(mi)];
- mp->trackball = gltrackball_init ();
+ mp->trackball = gltrackball_init (False);
mp->position0[0] = 1;
mp->position0[1] = 5;
mp->mono = MI_IS_MONO(mi);
mp->wire = MI_IS_WIREFRAME(mi);
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ mp->wire = 0;
+# endif
+
/* make multiple screens rotate at slightly different rates. */
mp->theta_scale = 0.7 + frand(0.6);
/* rotate providence */
glTranslatef(0.0, 0.0, mp->camera_z + sin(mp->theta/4.0));
glRotatef(10.0+20.0*sin(mp->theta/2.0), 1.0, 0.0, 0.0);
- glRotatef(-current_device_rotation(), 0, 0, 1);
gltrackball_rotate(mp->trackball);
- glRotatef(current_device_rotation(), 0, 0, 1);
glRotatef(mp->theta * 180.0 / Pi, 0.0, -1.0, 0.0);
/* draw providence */