commit a8aa49dcf7f18ebf046d8b959ef287f4a0326f3f
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Apr 28 01:42:25 2022 +0200

    Bandaged: progress.

diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java b/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
index 13296d86..cff22840 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
@@ -61,9 +61,7 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
 {
    public static final float BRIGHTNESS = 0.333f;
    private static final int DURATION = 1000;
-
    static final float SCREEN_RATIO = 0.5f;
-   static final float OBJECT_SIZE  = 3.0f;
 
    private final BandagedCreatorView mView;
    private final DistortedScreen mScreen;
@@ -82,6 +80,7 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
    private DistortedFramebuffer mFramebuffer;
    private String mPath;
    private boolean mCubitsCreated;
+   private int mWidth, mHeight;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -245,8 +244,9 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
    @Override
    public void onSurfaceChanged(GL10 glUnused, int width, int height)
       {
-      final float Q = SCREEN_RATIO/OBJECT_SIZE;
-      mScaleValue = width<height ? Q*width : Q*height;
+      mWidth = width;
+      mHeight= height;
+      rescaleObject();
 
       mScreen.detachAll();
       int touched = mView.getTouched();
@@ -261,7 +261,6 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
           mScreen.attach(node);
           }
 
-      mScale.set( mScaleValue,mScaleValue,mScaleValue );
       mView.setScreenSize(width,height);
       mScreen.resize(width,height);
       }
@@ -516,6 +515,16 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
      mSaveIcon = -1;
      }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   private void rescaleObject()
+     {
+     final int size = mX>mY ? Math.max(mX, mZ) : Math.max(mY, mZ);
+     final float Q = SCREEN_RATIO/size;
+     mScaleValue = mWidth<mHeight ? Q*mWidth : Q*mHeight;
+     mScale.set( mScaleValue,mScaleValue,mScaleValue );
+     }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    public void changeObject(int x, int y, int z)
@@ -527,6 +536,9 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
        mX = x;
        mY = y;
        mZ = z;
+
+       rescaleObject();
+
        mNumCubits = computeNumCubits(mX,mY,mZ);
 
        if( mCubitsCreated )
