From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / glx / blocktube.c
index 69605e7e3c48fc3c843103340e155f38a02d2c20..51f2f3db758fd2fdc3472cfb5cb089eca43c76cd 100644 (file)
@@ -16,6 +16,7 @@
 #define DEFAULTS        "*delay:       40000           \n" \
                         "*wireframe:    False           \n" \
                        "*showFPS:      False           \n" \
+                       "*suppressRotationAnimation: True\n" \
 
 # define refresh_blocktube 0
 # define blocktube_handle_event 0
@@ -321,6 +322,14 @@ ENTRYPOINT void reshape_blocktube (ModeInfo *mi, int width, int height)
     glLoadIdentity();
     gluPerspective(45.0, 1/h, 1.0, 100.0);
     glMatrixMode(GL_MODELVIEW);
+
+# ifdef HAVE_MOBILE    /* Keep it the same relative size when rotated. */
+    {
+      int o = (int) current_device_rotation();
+      if (o != 0 && o != 180 && o != -180)
+        glScalef (1/h, 1/h, 1/h);
+    }
+# endif
 }
 
 static int cube_vertices(float x, float y, float z, int wire)