Project

General

Profile

« Previous | Next » 

Revision dd00d051

Added by Leszek Koltunski over 2 years ago

Relax objectlib's requirements: it can be displayed not only on top of a DistortedScreen, but any DistortedFramebuffer.

View differences:

src/main/java/org/distorted/objectlib/automator/ObjectAutomator.java
23 23

  
24 24
import android.app.Activity;
25 25

  
26
import org.distorted.library.main.DistortedFramebuffer;
26 27
import org.distorted.library.main.DistortedNode;
27
import org.distorted.library.main.DistortedScreen;
28 28
import org.distorted.library.message.EffectListener;
29 29
import org.distorted.library.type.Static4D;
30 30

  
......
48 48

  
49 49
///////////////////////////////////////////////////////////////////////////////////////////////////
50 50

  
51
  DistortedScreen getScreen()
51
  DistortedFramebuffer getFramebuffer()
52 52
    {
53 53
    ObjectLibInterface inter = mObjectControl.getInterface();
54
    return inter.getScreen();
54
    return inter.getFramebuffer();
55 55
    }
56 56

  
57 57
///////////////////////////////////////////////////////////////////////////////////////////////////
......
79 79

  
80 80
  private void addWholeObjects()
81 81
    {
82
    DistortedScreen screen = getScreen();
82
    DistortedFramebuffer frame = getFramebuffer();
83 83
    DistortedNode[] nodes = mWhole.getNodes();
84 84

  
85
    if( screen!=null && nodes!=null )
85
    if( frame!=null && nodes!=null )
86 86
      {
87
      for (DistortedNode node : nodes) screen.attach(node);
87
      for (DistortedNode node : nodes) frame.attach(node);
88 88
      }
89 89
    }
90 90

  
......
92 92

  
93 93
  private void removeWholeObjects()
94 94
    {
95
    DistortedScreen screen = getScreen();
95
    DistortedFramebuffer frame = getFramebuffer();
96 96
    DistortedNode[] nodes = mWhole.returnNodes();
97 97

  
98
    if( screen!=null && nodes!=null )
98
    if( frame!=null && nodes!=null )
99 99
      {
100
      for (DistortedNode node : nodes) screen.detach(node);
100
      for (DistortedNode node : nodes) frame.detach(node);
101 101
      }
102 102
    }
103 103

  
......
105 105

  
106 106
  private void addRotateObjects()
107 107
    {
108
    DistortedScreen screen = getScreen();
108
    DistortedFramebuffer frame = getFramebuffer();
109 109
    DistortedNode[] screenNodes = mRotate.getScreenNodes();
110 110

  
111
    if( screen!=null && screenNodes!=null )
111
    if( frame!=null && screenNodes!=null )
112 112
      {
113
      for (DistortedNode node : screenNodes) screen.attach(node);
113
      for (DistortedNode node : screenNodes) frame.attach(node);
114 114
      }
115 115

  
116 116
    DistortedNode object = mObjectControl.getObject();
......
126 126

  
127 127
  private void removeRotateObjects()
128 128
    {
129
    DistortedScreen screen = getScreen();
129
    DistortedFramebuffer frame = getFramebuffer();
130 130
    DistortedNode[] screenNodes = mRotate.returnScreenNodes();
131 131

  
132
    if( screen!=null && screenNodes!=null )
132
    if( frame!=null && screenNodes!=null )
133 133
      {
134
      for (DistortedNode node : screenNodes) screen.detach(node);
134
      for (DistortedNode node : screenNodes) frame.detach(node);
135 135
      }
136 136

  
137 137
    DistortedNode object = mObjectControl.getObject();
src/main/java/org/distorted/objectlib/automator/ObjectAutomatorRotate.java
29 29
import org.distorted.library.effect.MatrixEffectQuaternion;
30 30
import org.distorted.library.effect.MatrixEffectScale;
31 31
import org.distorted.library.main.DistortedEffects;
32
import org.distorted.library.main.DistortedFramebuffer;
32 33
import org.distorted.library.main.DistortedNode;
33
import org.distorted.library.main.DistortedScreen;
34 34
import org.distorted.library.main.DistortedTexture;
35 35
import org.distorted.library.mesh.MeshQuad;
36 36
import org.distorted.library.message.EffectListener;
......
194 194
    mScreenEffects   = new DistortedEffects[NUM_SCREEN];
195 195
    mScreenEffects[0]= new DistortedEffects();
196 196

  
197
    DistortedScreen screen = mControl.getScreen();
198
    int wid = screen.getWidth();
197
    DistortedFramebuffer frame = mControl.getFramebuffer();
198
    int wid = frame.getWidth();
199 199

  
200 200
    Static3D scaleStart= new Static3D(1,1,1);
201 201
    Static3D scaleEnd  = new Static3D(wid,wid,wid);
......
243 243
    mQuaternion = new MatrixEffectQuaternion(mDynamic4, center);
244 244
    mCubeEffectID = mQuaternion.getID();
245 245

  
246
    DistortedScreen screen = mControl.getScreen();
247
    int wid = screen.getWidth();
246
    DistortedFramebuffer frame = mControl.getFramebuffer();
247
    int wid = frame.getWidth();
248 248
    Static3D scaleFactor = new Static3D(wid,wid*0.1f,10);
249 249
    MatrixEffectScale scale = new MatrixEffectScale(scaleFactor);
250 250
    MatrixEffectQuaternion quat = new MatrixEffectQuaternion(INIT_QUAT,center);
src/main/java/org/distorted/objectlib/automator/ObjectAutomatorWhole.java
29 29
import org.distorted.library.effect.MatrixEffectMove;
30 30
import org.distorted.library.effect.MatrixEffectScale;
31 31
import org.distorted.library.main.DistortedEffects;
32
import org.distorted.library.main.DistortedFramebuffer;
32 33
import org.distorted.library.main.DistortedNode;
33
import org.distorted.library.main.DistortedScreen;
34 34
import org.distorted.library.main.DistortedTexture;
35 35
import org.distorted.library.mesh.MeshQuad;
36 36
import org.distorted.library.type.Dynamic;
......
801 801
    mEffects[3].apply(scaleHand2);
802 802
    mEffects[3].apply(moveHand2);
803 803

  
804
    DistortedScreen screen = mControl.getScreen();
805
    mWidth = screen.getWidth();
806
    mHeight= screen.getHeight();
804
    DistortedFramebuffer frame = mControl.getFramebuffer();
805
    mWidth = frame.getWidth();
806
    mHeight= frame.getHeight();
807 807

  
808 808
    X0   = mWidth*0.65f;
809 809
    X1   = mWidth*0.50f;
src/main/java/org/distorted/objectlib/effects/BaseEffect.java
23 23
import java.lang.reflect.Method;
24 24
import android.content.SharedPreferences;
25 25

  
26
import org.distorted.library.main.DistortedScreen;
26
import org.distorted.library.main.DistortedFramebuffer;
27 27

  
28 28
import org.distorted.objectlib.effects.scramble.ScrambleEffect;
29 29
import org.distorted.objectlib.effects.objectchange.ObjectChangeEffect;
......
198 198

  
199 199
  ////////////////////////////////////////////////////////////////////////////////
200 200

  
201
    public long startEffect(DistortedScreen screen, ObjectPreRender pre) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
201
    public long startEffect(DistortedFramebuffer frame, ObjectPreRender pre) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
202 202
      {
203 203
      Method method1 = mClass.getDeclaredMethod("create", int.class);
204 204

  
205 205
      Object value1 = method1.invoke(null,mCurrentType);
206 206
      BaseEffect baseEffect = (BaseEffect)value1;
207 207

  
208
      Method method2 = mClass.getDeclaredMethod("start", int.class, DistortedScreen.class, ObjectPreRender.class);
208
      Method method2 = mClass.getDeclaredMethod("start", int.class, DistortedFramebuffer.class, ObjectPreRender.class);
209 209

  
210 210
      Integer translated = translatePos(mCurrentPos)+1;
211
      Object value2 = method2.invoke(baseEffect,translated,screen,pre);
211
      Object value2 = method2.invoke(baseEffect,translated,frame,pre);
212 212
      return (Long)value2;
213 213
      }
214 214

  
src/main/java/org/distorted/objectlib/effects/objectchange/ObjectChangeEffect.java
23 23

  
24 24
import org.distorted.library.effect.Effect;
25 25
import org.distorted.library.main.DistortedEffects;
26
import org.distorted.library.main.DistortedScreen;
26
import org.distorted.library.main.DistortedFramebuffer;
27 27
import org.distorted.library.message.EffectListener;
28 28

  
29 29
import org.distorted.objectlib.main.ObjectPreRender;
......
75 75

  
76 76
  ObjectPreRender mPre;
77 77
  TwistyObject[] mObject;
78
  DistortedScreen mScreen;
78
  DistortedFramebuffer mFrame;
79 79
  Effect[][] mCubeEffects;
80 80
  int[][] mCubeEffectPosition;
81 81
  Effect[][] mNodeEffects;
......
143 143
        case 0: mPhaseActive[1] = true;
144 144
                mEffectFinished[1] = createEffectsPhase1(mDuration);
145 145
                assignEffects(1);
146
                mScreen.attach(mObject[1]);
146
                mFrame.attach(mObject[1]);
147 147
                break;
148 148
        case 1: mPre.effectFinished(FAKE_EFFECT_ID);
149 149
                break;
......
154 154
      switch(phase)
155 155
        {
156 156
        case 0: mPhaseActive[0] = false;
157
                mScreen.detach(mObject[0]);
157
                mFrame.detach(mObject[0]);
158 158
                break;
159 159
        case 1: mPhaseActive[1] = false;
160 160
                break;
......
225 225
///////////////////////////////////////////////////////////////////////////////////////////////////
226 226

  
227 227
  @SuppressWarnings("unused")
228
  public long start(int duration, DistortedScreen screen, ObjectPreRender pre)
228
  public long start(int duration, DistortedFramebuffer frame, ObjectPreRender pre)
229 229
    {
230
    mScreen    = screen;
230
    mFrame     = frame;
231 231
    mObject[0] = pre.getOldObject();
232 232
    mObject[1] = pre.getObject();
233 233
    mPre       = pre;
......
244 244
      mPhaseActive[1] = true;
245 245
      mEffectFinished[1] = createEffectsPhase1(mDuration);
246 246
      assignEffects(1);
247
      mScreen.attach(mObject[1]);
247
      mFrame.attach(mObject[1]);
248 248
      }
249 249

  
250 250
    return FAKE_EFFECT_ID;
src/main/java/org/distorted/objectlib/effects/objectchange/ObjectChangeEffectMove.java
30 30
  {
31 31
  public int createEffectsPhase0(int duration)
32 32
    {
33
    int w = mScreen.getWidth();
34
    int h = mScreen.getHeight();
33
    int w = mFrame.getWidth();
34
    int h = mFrame.getHeight();
35 35
    int xmove = w/2 + (w<h?w:h)/2;
36 36

  
37 37
    mNodeEffectPosition[0] = new int[] {1};
......
49 49

  
50 50
  public int createEffectsPhase1(int duration)
51 51
    {
52
    int w = mScreen.getWidth();
53
    int h = mScreen.getHeight();
52
    int w = mFrame.getWidth();
53
    int h = mFrame.getHeight();
54 54
    int xmove = w/2 + (w<h?w:h)/2;
55 55

  
56 56
    mNodeEffectPosition[1] = new int[] {1};
src/main/java/org/distorted/objectlib/effects/scramble/ScrambleEffect.java
24 24

  
25 25
import org.distorted.library.effect.Effect;
26 26
import org.distorted.library.main.DistortedEffects;
27
import org.distorted.library.main.DistortedScreen;
27
import org.distorted.library.main.DistortedFramebuffer;
28 28
import org.distorted.library.message.EffectListener;
29 29

  
30 30
import org.distorted.objectlib.main.ObjectPreRender;
......
258 258
///////////////////////////////////////////////////////////////////////////////////////////////////
259 259

  
260 260
  @SuppressWarnings("unused")
261
  public long start(int duration, DistortedScreen screen, ObjectPreRender pre)
261
  public long start(int duration, DistortedFramebuffer frame, ObjectPreRender pre)
262 262
    {
263 263
    mObject= pre.getObject();
264 264
    mPre   = pre;
src/main/java/org/distorted/objectlib/effects/solve/SolveEffect.java
23 23

  
24 24
import org.distorted.library.effect.Effect;
25 25
import org.distorted.library.main.DistortedEffects;
26
import org.distorted.library.main.DistortedScreen;
26
import org.distorted.library.main.DistortedFramebuffer;
27 27
import org.distorted.library.message.EffectListener;
28 28

  
29 29
import org.distorted.objectlib.main.ObjectPreRender;
......
72 72

  
73 73
  ObjectPreRender mPre;
74 74
  TwistyObject mObject;
75
  DistortedScreen mScreen;
75
  DistortedFramebuffer mFrame;
76 76
  Effect[][] mCubeEffects;
77 77
  int[][] mCubeEffectPosition;
78 78
  Effect[][] mNodeEffects;
......
199 199
///////////////////////////////////////////////////////////////////////////////////////////////////
200 200

  
201 201
  @SuppressWarnings("unused")
202
  public long start(int duration, DistortedScreen screen, ObjectPreRender pre)
202
  public long start(int duration, DistortedFramebuffer frame, ObjectPreRender pre)
203 203
    {
204
    mScreen  = screen;
204
    mFrame   = frame;
205 205
    mObject  = pre.getObject();
206 206
    mPre     = pre;
207 207
    mDuration= duration;
src/main/java/org/distorted/objectlib/effects/win/WinEffect.java
23 23

  
24 24
import org.distorted.library.effect.Effect;
25 25
import org.distorted.library.main.DistortedEffects;
26
import org.distorted.library.main.DistortedScreen;
26
import org.distorted.library.main.DistortedFramebuffer;
27 27
import org.distorted.library.message.EffectListener;
28 28

  
29 29
import org.distorted.objectlib.main.ObjectPreRender;
......
69 69

  
70 70
  ObjectPreRender mPre;
71 71
  TwistyObject mObject;
72
  DistortedScreen mScreen;
72
  DistortedFramebuffer mFrame;
73 73
  Effect[] mCubeEffects;
74 74
  int[] mCubeEffectPosition;
75 75
  Effect[] mNodeEffects;
......
164 164
///////////////////////////////////////////////////////////////////////////////////////////////////
165 165

  
166 166
  @SuppressWarnings("unused")
167
  public long start(int duration, DistortedScreen screen, ObjectPreRender pre)
167
  public long start(int duration, DistortedFramebuffer frame, ObjectPreRender pre)
168 168
    {
169
    mScreen   = screen;
169
    mFrame    = frame;
170 170
    mObject   = pre.getObject();
171 171
    mPre      = pre;
172 172
    mDuration = duration;
src/main/java/org/distorted/objectlib/effects/win/WinEffectGlow.java
69 69

  
70 70
    float moveX = mPre.getMoveX();
71 71
    float moveY = mPre.getMoveY();
72
    int width   = mScreen.getWidth();
73
    int height  = mScreen.getHeight();
72
    int width   = mFrame.getWidth();
73
    int height  = mFrame.getHeight();
74 74
    Static3D center = new Static3D(moveX/width, moveY/height, 0);
75 75
    float ratio = 0.5f*mObject.getRatio();
76 76

  
src/main/java/org/distorted/objectlib/helpers/ObjectLibInterface.java
19 19

  
20 20
package org.distorted.objectlib.helpers;
21 21

  
22
import org.distorted.library.main.DistortedScreen;
22
import org.distorted.library.main.DistortedFramebuffer;
23

  
23 24
import org.distorted.objectlib.main.ObjectControl;
24 25
import org.distorted.objectlib.main.ObjectType;
25 26

  
......
39 40
  int getCurrentColor();
40 41
  int cubitIsLocked(ObjectType type, int cubit);
41 42
  ObjectControl getControl();
42
  DistortedScreen getScreen();
43
  DistortedFramebuffer getFramebuffer();
43 44
  }
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
24 24
import android.app.Activity;
25 25
import android.content.SharedPreferences;
26 26

  
27
import org.distorted.library.main.DistortedScreen;
27
import org.distorted.library.main.DistortedFramebuffer;
28 28
import org.distorted.library.message.EffectListener;
29 29

  
30 30
import org.distorted.library.type.Static3D;
......
125 125
    try
126 126
      {
127 127
      int index = type.ordinal();
128
      DistortedScreen screen = mController.getInterface().getScreen();
129
      mEffectID[index] = type.startEffect(screen,this);
128
      DistortedFramebuffer frame = mController.getInterface().getFramebuffer();
129
      mEffectID[index] = type.startEffect(frame,this);
130 130
      }
131 131
    catch( Exception ex )
132 132
      {

Also available in: Unified diff