From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / glx / topblock.c
index 1b18a54715ab1be0a7cee516d33634d32b1907a6..eed2fd54f775fa0522bbb19a2fcf54ed88613b02 100644 (file)
@@ -47,7 +47,7 @@ History
 
 #ifdef USE_GL /* whole file */
 
-#ifndef HAVE_COCOA
+#ifndef HAVE_JWXYZ
 # include <GL/glu.h>
 #endif
 
@@ -327,6 +327,15 @@ draw_topBlock (ModeInfo *mi)
        /* rotate the world */
        glRotatef(tb->rotation, 0.0, 0.0, 1.0);         
 
+# 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 (1/h, 1/h, 1/h);
+        }
+# endif
+
        llCurrent = tb->blockNodeRoot;
        if (drawCarpet) {
                /* center carpet */