Revision f291130e
Added by Leszek Koltunski over 6 years ago
| src/main/java/org/distorted/effect/TransitionEffect.java | ||
|---|---|---|
| 33 | 33 |   {
 | 
| 34 | 34 | public enum Type | 
| 35 | 35 |     {
 | 
| 36 | /** | |
| 37 | * No transition effect at all, just detach the old cube and attach the new one straight away. | |
| 38 | */ | |
| 39 | EMPTY (TransitionEffectEmpty.class), | |
| 40 | /** | |
| 41 | * Gradually make the old cube more and more transparent until it disappears, then make the new one appear. | |
| 42 | */ | |
| 36 | EMPTY (TransitionEffectEmpty.class ), | |
| 43 | 37 | DISAPPEAR (TransitionEffectDisappear.class), | 
| 44 |     /**
 | |
| 45 |      * Move the old cube to the right and the new one from the left.
 | |
| 46 |      */
 | |
| 47 |     MOVE       (TransitionEffectMove.class);
 | |
| 38 |     MOVE       (TransitionEffectMove.class     ),
 | |
| 39 |     ROUND      (TransitionEffectRound.class    ),
 | |
| 40 |     SCALE      (TransitionEffectScale.class    ),
 | |
| 41 | ; | |
| 48 | 42 |  | 
| 49 | 43 | private final Class<? extends TransitionEffect> effectClass; | 
| 50 | 44 |  | 
| ... | ... | |
| 54 | 48 | } | 
| 55 | 49 | } | 
| 56 | 50 |  | 
| 57 | private final int MOVE_POSITION; | |
| 58 | private long mDisappearID, mAppearID; | |
| 51 | private final int FAKE_EFFECT_ID = -1; | |
| 52 |  | |
| 53 | private int mOldCubeEffectNumber , mNewCubeEffectNumber; | |
| 54 | private int mOldCubeEffectReturned, mNewCubeEffectReturned; | |
| 55 |  | |
| 59 | 56 | private EffectListener mListener; | 
| 60 | 57 | private DistortedScreen mScreen; | 
| 61 |   private RubikCube mOld, mNew;
 | |
| 58 |   private RubikCube mOldCube, mNewCube;
 | |
| 62 | 59 |  | 
| 63 | Effect mDisappear, mAppear; | |
| 60 | Effect[] mOldCubeEffects, mNewCubeEffects; | |
| 61 | int[] mOldCubeEffectPosition, mNewCubeEffectPosition; | |
| 64 | 62 |  | 
| 65 | 63 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 66 | 64 |  | 
| 67 |   TransitionEffect(int position)
 | |
| 65 | TransitionEffect() | |
| 68 | 66 |     {
 | 
| 69 | MOVE_POSITION = position; | |
| 67 | mOldCubeEffectReturned = 0; | |
| 68 | mNewCubeEffectReturned = 0; | |
| 70 | 69 | } | 
| 71 | 70 |  | 
| 72 | 71 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 73 | // whenever we get the message that the old cube completely disappeared, make the new one appear | |
| 74 | // The calling RubikRenderer will get the message that this (final) transition is over and do whatever | |
| 75 | // it wants to do with this. | |
| 76 | 72 |  | 
| 77 | 73 | public void effectMessage(final EffectMessage em, final long effectID, final long objectID) | 
| 78 | 74 |     {
 | 
| 79 | if( effectID == mDisappearID ) | |
| 75 |     //android.util.Log.e("transition", "transition effect "+System.currentTimeMillis());
 | |
| 76 |  | |
| 77 | for(int i=0; i<mOldCubeEffectNumber; i++) | |
| 80 | 78 |       {
 | 
| 81 | mScreen.detach(mOld); | |
| 82 | mOld.remove(mDisappearID); | |
| 83 | mOld.deregisterForMessages(this); | |
| 79 | long id = mOldCubeEffects[i].getID(); | |
| 80 |  | |
| 81 | if( effectID == id ) | |
| 82 |         {
 | |
| 83 |         //android.util.Log.e("transition", i+" old effect "+System.currentTimeMillis());
 | |
| 84 |  | |
| 85 | mOldCubeEffectReturned++; | |
| 86 | mOldCube.remove(id); | |
| 87 |  | |
| 88 | if( mOldCubeEffectReturned == mOldCubeEffectNumber ) | |
| 89 |           {
 | |
| 90 | mScreen.detach(mOldCube); | |
| 91 | mOldCube.deregisterForMessages(this); | |
| 92 |  | |
| 93 | for(int j=0; j<mOldCubeEffectNumber; j++) | |
| 94 |             {
 | |
| 95 | mNewCube.apply(mNewCubeEffects[j],mNewCubeEffectPosition[j]); | |
| 96 | } | |
| 97 | mScreen.attach(mNewCube); | |
| 98 | } | |
| 99 | break; | |
| 100 | } | |
| 101 | } | |
| 84 | 102 |  | 
| 85 | mNew.apply(mAppear,MOVE_POSITION); | |
| 86 | mNew.registerForMessages(mListener); | |
| 87 | mScreen.attach(mNew); | |
| 103 | for(int i=0; i<mNewCubeEffectNumber; i++) | |
| 104 |       {
 | |
| 105 | long id = mNewCubeEffects[i].getID(); | |
| 106 |  | |
| 107 | if( effectID == id ) | |
| 108 |         {
 | |
| 109 |         //android.util.Log.e("transition", i+" new effect "+System.currentTimeMillis());
 | |
| 110 |  | |
| 111 | mNewCubeEffectReturned++; | |
| 112 | mNewCube.remove(id); | |
| 113 |  | |
| 114 | if( mNewCubeEffectReturned == mNewCubeEffectNumber ) | |
| 115 |           {
 | |
| 116 | mNewCube.deregisterForMessages(this); | |
| 117 | mListener.effectMessage(null, FAKE_EFFECT_ID, 0); | |
| 118 | } | |
| 119 | break; | |
| 120 | } | |
| 88 | 121 | } | 
| 89 | 122 | } | 
| 90 | 123 |  | 
| ... | ... | |
| 93 | 126 | public long start(DistortedScreen screen, RubikCube oldCube, RubikCube newCube,EffectListener listener) | 
| 94 | 127 |     {
 | 
| 95 | 128 | mScreen = screen; | 
| 96 |     mNew      = newCube;
 | |
| 97 |     mOld      = oldCube;
 | |
| 129 |     mNewCube  = newCube;
 | |
| 130 |     mOldCube  = oldCube;
 | |
| 98 | 131 | mListener = listener; | 
| 99 | 132 |  | 
| 100 | mDisappearID = mDisappear.getID(); | |
| 101 | mAppearID = mAppear.getID(); | |
| 133 | if( mOldCubeEffects!=null ) | |
| 134 |       {
 | |
| 135 | mOldCubeEffectNumber = mOldCubeEffects.length; | |
| 136 | } | |
| 137 | else | |
| 138 |       {
 | |
| 139 |       throw new RuntimeException("Old Cube Effects not created!");
 | |
| 140 | } | |
| 141 |  | |
| 142 | if( mNewCubeEffects!=null ) | |
| 143 |       {
 | |
| 144 | mNewCubeEffectNumber = mNewCubeEffects.length; | |
| 145 | } | |
| 146 | else | |
| 147 |       {
 | |
| 148 |       throw new RuntimeException("New Cube Effects not created!");
 | |
| 149 | } | |
| 150 |  | |
| 151 | for(int i=0; i<mOldCubeEffectNumber; i++) | |
| 152 |       {
 | |
| 153 | mOldCube.apply(mOldCubeEffects[i],mOldCubeEffectPosition[i]); | |
| 154 | } | |
| 102 | 155 |  | 
| 103 |     mOld.apply(mDisappear,MOVE_POSITION);
 | |
| 104 |     mOld.registerForMessages(this);
 | |
| 156 |     mOldCube.registerForMessages(this);
 | |
| 157 |     mNewCube.registerForMessages(this);
 | |
| 105 | 158 |  | 
| 106 |     return mAppearID;
 | |
| 159 |     return FAKE_EFFECT_ID;
 | |
| 107 | 160 | } | 
| 108 | 161 |  | 
| 109 | 162 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/effect/TransitionEffectDisappear.java | ||
|---|---|---|
| 19 | 19 |  | 
| 20 | 20 | package org.distorted.effect; | 
| 21 | 21 |  | 
| 22 | import org.distorted.library.effect.Effect; | |
| 22 | 23 | import org.distorted.library.effect.FragmentEffectAlpha; | 
| 23 | 24 | import org.distorted.library.type.Dynamic1D; | 
| 24 | 25 | import org.distorted.library.type.Static1D; | 
| ... | ... | |
| 29 | 30 |   {
 | 
| 30 | 31 | TransitionEffectDisappear() | 
| 31 | 32 |     {
 | 
| 32 | super(-1); | |
| 33 |  | |
| 34 | 33 | final int DURATION_IN_MILLIS = 1000; | 
| 35 | 34 |  | 
| 36 | Dynamic1D disappearDyn = new Dynamic1D(DURATION_IN_MILLIS, 0.5f); | |
| 37 | disappearDyn.add(new Static1D(1.0f)); | |
| 38 | disappearDyn.add(new Static1D(0.0f)); | |
| 39 | mDisappear = new FragmentEffectAlpha(disappearDyn); | |
| 35 |     mOldCubeEffectPosition = new int[] {-1};
 | |
| 36 | mOldCubeEffects = new Effect[mOldCubeEffectPosition.length]; | |
| 37 |  | |
| 38 | Dynamic1D oldCube0 = new Dynamic1D(DURATION_IN_MILLIS, 0.5f); | |
| 39 | oldCube0.add(new Static1D(1.0f)); | |
| 40 | oldCube0.add(new Static1D(0.0f)); | |
| 41 | mOldCubeEffects[0] = new FragmentEffectAlpha(oldCube0); | |
| 42 |  | |
| 43 |     mNewCubeEffectPosition = new int[] {-1};
 | |
| 44 | mNewCubeEffects = new Effect[mNewCubeEffectPosition.length]; | |
| 40 | 45 |  | 
| 41 |     Dynamic1D appearDyn = new Dynamic1D(DURATION_IN_MILLIS, 0.5f);
 | |
| 42 |     appearDyn.add(new Static1D(0.0f));
 | |
| 43 |     appearDyn.add(new Static1D(1.0f));
 | |
| 44 |     mAppear = new FragmentEffectAlpha(appearDyn);
 | |
| 46 |     Dynamic1D newCube0 = new Dynamic1D(DURATION_IN_MILLIS, 0.5f);
 | |
| 47 |     newCube0.add(new Static1D(0.0f));
 | |
| 48 |     newCube0.add(new Static1D(1.0f));
 | |
| 49 |     mNewCubeEffects[0] = new FragmentEffectAlpha(newCube0);
 | |
| 45 | 50 | } | 
| 46 | 51 |  | 
| 47 | 52 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/effect/TransitionEffectEmpty.java | ||
|---|---|---|
| 19 | 19 |  | 
| 20 | 20 | package org.distorted.effect; | 
| 21 | 21 |  | 
| 22 | import org.distorted.library.effect.Effect; | |
| 22 | 23 | import org.distorted.library.effect.MatrixEffectMove; | 
| 23 | 24 | import org.distorted.library.type.Dynamic3D; | 
| 24 | 25 | import org.distorted.library.type.Static3D; | 
| ... | ... | |
| 29 | 30 |   {
 | 
| 30 | 31 | TransitionEffectEmpty() | 
| 31 | 32 |     {
 | 
| 32 | super(-1); | |
| 33 |  | |
| 34 | 33 | final int DURATION_IN_MILLIS = 1; | 
| 35 | 34 |  | 
| 36 | Dynamic3D disappearDyn = new Dynamic3D(DURATION_IN_MILLIS, 0.5f); | |
| 37 | disappearDyn.add(new Static3D(0,0,0)); | |
| 38 | mDisappear = new MatrixEffectMove(disappearDyn); | |
| 35 |     mOldCubeEffectPosition = new int[] {-1};
 | |
| 36 | mOldCubeEffects = new Effect[mOldCubeEffectPosition.length]; | |
| 37 |  | |
| 38 | Dynamic3D oldCube0 = new Dynamic3D(DURATION_IN_MILLIS, 0.5f); | |
| 39 | oldCube0.add(new Static3D(0,0,0)); | |
| 40 | mOldCubeEffects[0] = new MatrixEffectMove(oldCube0); | |
| 41 |  | |
| 42 |     mNewCubeEffectPosition = new int[] {-1};
 | |
| 43 | mNewCubeEffects = new Effect[mNewCubeEffectPosition.length]; | |
| 39 | 44 |  | 
| 40 |     Dynamic3D appearDyn = new Dynamic3D(DURATION_IN_MILLIS, 0.5f);
 | |
| 41 |     appearDyn.add(new Static3D(0,0,0));
 | |
| 42 |     mAppear = new MatrixEffectMove(appearDyn);
 | |
| 45 |     Dynamic3D newCube0 = new Dynamic3D(DURATION_IN_MILLIS, 0.5f);
 | |
| 46 |     newCube0.add(new Static3D(0,0,0));
 | |
| 47 |     mNewCubeEffects[0] = new MatrixEffectMove(newCube0);
 | |
| 43 | 48 | } | 
| 44 | 49 |  | 
| 45 | 50 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/effect/TransitionEffectMove.java | ||
|---|---|---|
| 19 | 19 |  | 
| 20 | 20 | package org.distorted.effect; | 
| 21 | 21 |  | 
| 22 | import org.distorted.library.effect.Effect; | |
| 22 | 23 | import org.distorted.library.effect.MatrixEffectMove; | 
| 23 | 24 | import org.distorted.library.type.Dynamic3D; | 
| 24 | 25 | import org.distorted.library.type.Static3D; | 
| ... | ... | |
| 31 | 32 |   {
 | 
| 32 | 33 | TransitionEffectMove() | 
| 33 | 34 |     {
 | 
| 34 | super(2); | |
| 35 |  | |
| 36 | 35 | final int DURATION_IN_MILLIS = 1000; | 
| 37 | 36 |  | 
| 38 | Dynamic3D disappearDyn = new Dynamic3D(DURATION_IN_MILLIS, 0.5f); | |
| 39 | disappearDyn.add(new Static3D(0,0,0)); | |
| 40 | disappearDyn.add(new Static3D(TEXTURE_SIZE,0,0)); | |
| 41 | mDisappear = new MatrixEffectMove(disappearDyn); | |
| 37 |     mOldCubeEffectPosition = new int[] {2};
 | |
| 38 | mOldCubeEffects = new Effect[mOldCubeEffectPosition.length]; | |
| 39 |  | |
| 40 | Dynamic3D oldCube0 = new Dynamic3D(DURATION_IN_MILLIS, 0.5f); | |
| 41 | oldCube0.add(new Static3D(0,0,0)); | |
| 42 | oldCube0.add(new Static3D(TEXTURE_SIZE,0,0)); | |
| 43 | mOldCubeEffects[0] = new MatrixEffectMove(oldCube0); | |
| 44 |  | |
| 45 |     mNewCubeEffectPosition = new int[] {2};
 | |
| 46 | mNewCubeEffects = new Effect[mNewCubeEffectPosition.length]; | |
| 42 | 47 |  | 
| 43 |     Dynamic3D appearDyn = new Dynamic3D(DURATION_IN_MILLIS, 0.5f);
 | |
| 44 |     appearDyn.add(new Static3D(-TEXTURE_SIZE,0,0));
 | |
| 45 |     appearDyn.add(new Static3D(0,0,0));
 | |
| 46 |     mAppear = new MatrixEffectMove(appearDyn);
 | |
| 48 |     Dynamic3D newCube0 = new Dynamic3D(DURATION_IN_MILLIS, 0.5f);
 | |
| 49 |     newCube0.add(new Static3D(-TEXTURE_SIZE,0,0));
 | |
| 50 |     newCube0.add(new Static3D(0,0,0));
 | |
| 51 |     mNewCubeEffects[0] = new MatrixEffectMove(newCube0);
 | |
| 47 | 52 | } | 
| 48 | 53 |  | 
| 49 | 54 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/magic/RubikActivity.java | ||
|---|---|---|
| 106 | 106 | break; | 
| 107 | 107 | } | 
| 108 | 108 |  | 
| 109 | markButton(size); | |
| 110 |  | |
| 111 | 109 | RubikSurfaceView view = findViewById(R.id.rubikSurfaceView); | 
| 112 | view.setNewCubeSize(size); | |
| 110 | boolean success = view.setNewCubeSize(size); | |
| 111 |  | |
| 112 | if( success ) | |
| 113 |         {
 | |
| 114 | markButton(size); | |
| 115 | } | |
| 113 | 116 | } | 
| 114 | 117 |  | 
| 115 | 118 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/magic/RubikCube.java | ||
|---|---|---|
| 24 | 24 | import android.graphics.Paint; | 
| 25 | 25 |  | 
| 26 | 26 | import org.distorted.library.effect.Effect; | 
| 27 | import org.distorted.library.effect.EffectType; | |
| 27 | 28 | import org.distorted.library.effect.MatrixEffectMove; | 
| 28 | 29 | import org.distorted.library.effect.MatrixEffectQuaternion; | 
| 29 | 30 | import org.distorted.library.effect.MatrixEffectRotate; | 
| ... | ... | |
| 181 | 182 |  | 
| 182 | 183 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 183 | 184 |  | 
| 184 | public void apply(Effect effect) | |
| 185 |     public void apply(Effect effect, int position)
 | |
| 185 | 186 |       {
 | 
| 186 | 187 | for(int x=0; x<mSize; x++) | 
| 187 | 188 | for(int y=0; y<mSize; y++) | 
| ... | ... | |
| 189 | 190 |             {
 | 
| 190 | 191 | if( x==0 || x==mSize-1 || y==0 || y==mSize-1 || z==0 || z==mSize-1 ) | 
| 191 | 192 |               {
 | 
| 192 | mEffects[x][y][z].apply(effect); | |
| 193 |               mEffects[x][y][z].apply(effect, position);
 | |
| 193 | 194 | } | 
| 194 | 195 | } | 
| 195 | 196 | } | 
| 196 | 197 |  | 
| 197 | 198 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 198 | 199 |  | 
| 199 |     public void apply(Effect effect, int position)
 | |
| 200 |     public void remove(long effectID)
 | |
| 200 | 201 |       {
 | 
| 201 | 202 | for(int x=0; x<mSize; x++) | 
| 202 | 203 | for(int y=0; y<mSize; y++) | 
| ... | ... | |
| 204 | 205 |             {
 | 
| 205 | 206 | if( x==0 || x==mSize-1 || y==0 || y==mSize-1 || z==0 || z==mSize-1 ) | 
| 206 | 207 |               {
 | 
| 207 |               mEffects[x][y][z].apply(effect, position);
 | |
| 208 |               mEffects[x][y][z].abortById(effectID);
 | |
| 208 | 209 | } | 
| 209 | 210 | } | 
| 210 | 211 | } | 
| 211 | 212 |  | 
| 212 | 213 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 213 | 214 |  | 
| 214 |     public void remove(long effectID)
 | |
| 215 |     public int getNumEffects(EffectType type)
 | |
| 215 | 216 |       {
 | 
| 216 | for(int x=0; x<mSize; x++) | |
| 217 | for(int y=0; y<mSize; y++) | |
| 218 | for(int z=0; z<mSize; z++) | |
| 219 |             {
 | |
| 220 | if( x==0 || x==mSize-1 || y==0 || y==mSize-1 || z==0 || z==mSize-1 ) | |
| 221 |               {
 | |
| 222 | mEffects[x][y][z].abortById(effectID); | |
| 223 | } | |
| 224 | } | |
| 217 | return mEffects[0][0][0].getNumEffects(type); | |
| 225 | 218 | } | 
| 226 | 219 |  | 
| 227 | 220 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/magic/RubikRenderer.java | ||
|---|---|---|
| 22 | 22 | import android.opengl.GLSurfaceView; | 
| 23 | 23 |  | 
| 24 | 24 | import org.distorted.effect.TransitionEffect; | 
| 25 | import org.distorted.library.effect.EffectType; | |
| 25 | 26 | import org.distorted.library.effect.VertexEffectSink; | 
| 26 | 27 | import org.distorted.library.main.DistortedEffects; | 
| 27 | 28 | import org.distorted.library.main.DistortedLibrary; | 
| ... | ... | |
| 131 | 132 |  | 
| 132 | 133 | try | 
| 133 | 134 |           {
 | 
| 134 |           TransitionEffect effect = TransitionEffect.create(TransitionEffect.Type.EMPTY);
 | |
| 135 |           TransitionEffect effect = TransitionEffect.create(TransitionEffect.Type.ROUND);
 | |
| 135 | 136 | mTransitionEffectID = effect.start(mScreen,mOldCube,mNewCube,this); | 
| 136 | 137 | } | 
| 137 | 138 | catch(Exception ex) | 
| ... | ... | |
| 150 | 151 |      {
 | 
| 151 | 152 | if( effectID == mRotationFinishedID ) | 
| 152 | 153 |        {
 | 
| 154 |        //android.util.Log.e("renderer", "rotation finished");
 | |
| 155 |  | |
| 153 | 156 | mRemoveRotation = true; | 
| 154 | 157 | } | 
| 155 | 158 | else if( effectID == mTransitionEffectID ) | 
| 156 | 159 |        {
 | 
| 160 | /* | |
| 161 | int nM = mNewCube.getNumEffects(EffectType.MATRIX); | |
| 162 | int nV = mNewCube.getNumEffects(EffectType.VERTEX); | |
| 163 | int nF = mNewCube.getNumEffects(EffectType.FRAGMENT); | |
| 164 | int nP = mNewCube.getNumEffects(EffectType.POSTPROCESS); | |
| 165 |  | |
| 166 |        android.util.Log.d("renderer", "transition finished, new cube effects= "+nM+","+nV+","+nF+","+nP);
 | |
| 167 |  | |
| 168 | int oM = mOldCube.getNumEffects(EffectType.MATRIX); | |
| 169 | int oV = mOldCube.getNumEffects(EffectType.VERTEX); | |
| 170 | int oF = mOldCube.getNumEffects(EffectType.FRAGMENT); | |
| 171 | int oP = mOldCube.getNumEffects(EffectType.POSTPROCESS); | |
| 172 |  | |
| 173 |        android.util.Log.d("renderer", "transition finished, old cube effects= "+oM+","+oV+","+oF+","+oP);
 | |
| 174 | */ | |
| 157 | 175 | mCanRotate = true; | 
| 158 | 176 | mCanDrag = true; | 
| 159 | mNewCube.remove(mTransitionEffectID); | |
| 160 | mNewCube.deregisterForMessages(this); | |
| 161 | 177 | } | 
| 162 | 178 | } | 
| 163 | 179 |  | 
| ... | ... | |
| 218 | 234 |  | 
| 219 | 235 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 220 | 236 |  | 
| 221 |    void createCube(int newSize)
 | |
| 237 |    boolean createCube(int newSize)
 | |
| 222 | 238 |      {
 | 
| 223 | mNextCubeSize = newSize; | |
| 239 | if( mCanDrag && mCanRotate ) | |
| 240 |        {
 | |
| 241 | mNextCubeSize = newSize; | |
| 242 | return true; | |
| 243 | } | |
| 244 |  | |
| 245 |      android.util.Log.e("renderer", "cannot change, drag="+mCanDrag+" rotate="+mCanRotate);
 | |
| 246 |  | |
| 247 | return false; | |
| 224 | 248 | } | 
| 225 | 249 |  | 
| 226 | 250 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| src/main/java/org/distorted/magic/RubikSurfaceView.java | ||
|---|---|---|
| 162 | 162 |  | 
| 163 | 163 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 164 | 164 |  | 
| 165 |     void setNewCubeSize(int newCubeSize)
 | |
| 165 |     boolean setNewCubeSize(int newCubeSize)
 | |
| 166 | 166 |       {
 | 
| 167 | mRenderer.createCube(newCubeSize); | |
| 167 |       return mRenderer.createCube(newCubeSize);
 | |
| 168 | 168 | } | 
| 169 | 169 |  | 
| 170 | 170 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
Also available in: Unified diff
Progress with DistortedCube.