"*titleFont2: -*-helvetica-medium-r-normal-*-*-120-*-*-*-*-*-*\n" \
"*titleFont3: -*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*\n" \
-# define refresh_tangram 0
+# define free_tangram 0
# define release_tangram 0
#undef countof
#define countof(x) (sizeof((x))/sizeof((*x)))
{
tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, 1/h, 1);
+ }
+# endif
+
draw_tangram_shape(tp->tsm1);
draw_tangram_shape(tp->tsm2);
}
}
-static void set_perspective(void)
+ENTRYPOINT void reshape_tangram(ModeInfo * mi, int w, int h)
{
- glPushMatrix();
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60, -1, 0.1, 50);
- gluLookAt(0, 5, -5, 0, 0, 0, 0, -1, 0);
- glMatrixMode(GL_MODELVIEW);
- glPopMatrix();
+ int y = 0;
-}
+ if (w > h * 5) { /* tiny window: show middle */
+ h = w;
+ y = -h/2;
+ }
-ENTRYPOINT void reshape_tangram(ModeInfo * mi, int w, int h)
-{
- glViewport(0, 0, w, h);
- set_perspective();
- glLoadIdentity();
+ glViewport(0, y, w, h);
}
static void set_camera(tangram_configuration *tp)
{
tangram_configuration *tp;
- if (!tps) {
- tps = (tangram_configuration *)
- calloc(MI_NUM_SCREENS(mi), sizeof(tangram_configuration));
- if (!tps) {
- fprintf(stderr, "%s: out of memory\n", progname);
- exit(1);
- }
- }
+ MI_INIT (mi, tps);
tp = &tps[MI_SCREEN(mi)];