Project

General

Profile

« Previous | Next » 

Revision 7ba38dd4

Added by Leszek Koltunski over 2 years ago

Major change: separate the notion of a TwistyObject and its Node. Now,

1) the Node stays when we change objects (this makes transitions faster)
2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)

View differences:

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.DistortedFramebuffer;
27 26
import org.distorted.library.message.EffectListener;
28 27

  
29 28
import org.distorted.objectlib.main.ObjectPreRender;
30 29
import org.distorted.objectlib.main.TwistyObject;
31 30
import org.distorted.objectlib.effects.BaseEffect;
31
import org.distorted.objectlib.main.TwistyObjectNode;
32 32

  
33 33
///////////////////////////////////////////////////////////////////////////////////////////////////
34 34

  
......
75 75

  
76 76
  ObjectPreRender mPre;
77 77
  TwistyObject[] mObject;
78
  DistortedFramebuffer mFrame;
78
  TwistyObjectNode mObjectNode;
79 79
  Effect[][] mCubeEffects;
80 80
  int[][] mCubeEffectPosition;
81 81
  Effect[][] mNodeEffects;
......
124 124
      if( effectID == id )
125 125
        {
126 126
        effectReturned(phase);
127
        mObject[phase].getEffects().abortById(id);
127
        mObjectNode.getEffects().abortById(id);
128 128
        return;
129 129
        }
130 130
      }
......
143 143
        case 0: mPhaseActive[1] = true;
144 144
                mEffectFinished[1] = createEffectsPhase1(mDuration);
145 145
                assignEffects(1);
146
                mFrame.attach(mObject[1]);
146
                mObjectNode.attach(mObject[1].getNode());
147
                mObjectNode.setFOV(mObject[1].getFOV());
147 148
                break;
148 149
        case 1: mPre.effectFinished(FAKE_EFFECT_ID);
149 150
                break;
......
154 155
      switch(phase)
155 156
        {
156 157
        case 0: mPhaseActive[0] = false;
157
                mFrame.detach(mObject[0]);
158
                mObjectNode.detach(mObject[0].getNode());
158 159
                break;
159 160
        case 1: mPhaseActive[1] = false;
160 161
                break;
......
180 181
      mCubeEffects[phase][i].notifyWhenFinished(this);
181 182
      }
182 183

  
183
    DistortedEffects nodeEffects = mObject[phase].getEffects();
184
    DistortedEffects nodeEffects = mObjectNode.getEffects();
184 185

  
185 186
    for(int i=0; i<mNodeEffectNumber[phase]; i++)
186 187
      {
......
225 226
///////////////////////////////////////////////////////////////////////////////////////////////////
226 227

  
227 228
  @SuppressWarnings("unused")
228
  public long start(int duration, DistortedFramebuffer frame, ObjectPreRender pre)
229
  public long start(int duration, ObjectPreRender pre)
229 230
    {
230
    mFrame     = frame;
231 231
    mObject[0] = pre.getOldObject();
232 232
    mObject[1] = pre.getObject();
233
    mObjectNode= pre.getObjectNode();
233 234
    mPre       = pre;
234 235
    mDuration  = duration;
235 236

  
......
244 245
      mPhaseActive[1] = true;
245 246
      mEffectFinished[1] = createEffectsPhase1(mDuration);
246 247
      assignEffects(1);
247
      mFrame.attach(mObject[1]);
248
      mObjectNode.attach(mObject[1].getNode());
248 249
      }
249 250

  
250 251
    return FAKE_EFFECT_ID;

Also available in: Unified diff