commit f8eece7d42880faf966f513f33749a451aaa8dad
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri May 7 11:55:19 2021 +0200

    Attach the control nodes directly to the screen, not to the Object Node.

diff --git a/src/main/java/org/distorted/control/RubikControl.java b/src/main/java/org/distorted/control/RubikControl.java
index fcbad39d..07ee4692 100644
--- a/src/main/java/org/distorted/control/RubikControl.java
+++ b/src/main/java/org/distorted/control/RubikControl.java
@@ -20,10 +20,9 @@
 package org.distorted.control;
 
 import org.distorted.library.main.DistortedNode;
+import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.message.EffectListener;
 import org.distorted.main.RubikActivity;
-import org.distorted.main.RubikPreRender;
-import org.distorted.objects.TwistyObject;
 
 import java.lang.ref.WeakReference;
 
@@ -39,29 +38,22 @@ public class RubikControl implements EffectListener
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  private TwistyObject getObject()
+  private DistortedScreen getScreen()
     {
     RubikActivity act = mRefAct.get();
-
-    if( act!=null )
-      {
-      RubikPreRender pre = act.getPreRender();
-      return pre!=null ? pre.getObject() : null;
-      }
-
-    return null;
+    return act!=null ? act.getScreen() : null;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void addWholeObjects()
     {
-    TwistyObject object = getObject();
+    DistortedScreen screen = getScreen();
     DistortedNode[] nodes = mWhole.getNodes();
 
-    if( object!=null && nodes!=null )
+    if( screen!=null && nodes!=null )
       {
-      for (DistortedNode node : nodes) object.attach(node);
+      for (DistortedNode node : nodes) screen.attach(node);
       }
     }
 
@@ -69,12 +61,12 @@ public class RubikControl implements EffectListener
 
   private void removeWholeObjects()
     {
-    TwistyObject object = getObject();
+    DistortedScreen screen = getScreen();
     DistortedNode[] nodes = mWhole.returnNodes();
 
-    if( object!=null && nodes!=null )
+    if( screen!=null && nodes!=null )
       {
-      for (DistortedNode node : nodes) object.detach(node);
+      for (DistortedNode node : nodes) screen.detach(node);
       }
     }
 
@@ -82,12 +74,12 @@ public class RubikControl implements EffectListener
 
   private void addRotateObjects()
     {
-    TwistyObject object = getObject();
+    DistortedScreen screen = getScreen();
     DistortedNode[] nodes = mRotate.getNodes();
 
-    if( object!=null && nodes!=null )
+    if( screen!=null && nodes!=null )
       {
-      for (DistortedNode node : nodes) object.attach(node);
+      for (DistortedNode node : nodes) screen.attach(node);
       }
     }
 
@@ -95,12 +87,12 @@ public class RubikControl implements EffectListener
 
   private void removeRotateObjects()
     {
-    TwistyObject object = getObject();
+    DistortedScreen screen = getScreen();
     DistortedNode[] nodes = mRotate.returnNodes();
 
-    if( object!=null && nodes!=null )
+    if( screen!=null && nodes!=null )
       {
-      for (DistortedNode node : nodes) object.detach(node);
+      for (DistortedNode node : nodes) screen.detach(node);
       }
     }
 
diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 79e7e694..fd301126 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -41,6 +41,7 @@ import org.distorted.dialogs.RubikDialogPrivacy;
 import org.distorted.effects.BaseEffect;
 import org.distorted.library.main.DistortedLibrary;
 
+import org.distorted.library.main.DistortedScreen;
 import org.distorted.objects.TwistyObject;
 import org.distorted.network.RubikScores;
 import org.distorted.network.RubikNetwork;
@@ -383,6 +384,15 @@ public class RubikActivity extends AppCompatActivity
       return pre.getObject();
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public DistortedScreen getScreen()
+      {
+      RubikSurfaceView view = findViewById(R.id.rubikSurfaceView);
+      RubikRenderer renderer = view.getRenderer();
+      return renderer.getScreen();
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public int getScreenWidthInPixels()
