Project

General

Profile

« Previous | Next » 

Revision 392e16fd

Added by Leszek Koltunski almost 8 years ago

Change in the API: we always have to create a DistortedFramebuffer to render to.

View differences:

src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedFramebuffer;
29 30
import org.distorted.library.GridFlat;
30 31
import org.distorted.library.DistortedEffectQueues;
31 32
import org.distorted.library.DistortedTexture;
......
43 44
class AroundTheWorldRenderer implements GLSurfaceView.Renderer
44 45
{
45 46
   private GLSurfaceView mView;
46
   private DistortedEffectQueues mQueues;
47
   private DistortedEffectQueues mEffects;
47 48
   private DistortedTexture mTexture;
48 49
   private GridFlat mGrid;
49
   private AroundTheWorldEffectsManager mEffects;
50
   private DistortedFramebuffer mScreen;
51
   private AroundTheWorldEffectsManager mManager;
50 52
   private int mObjWidth, mObjHeight;
51 53

  
52 54
///////////////////////////////////////////////////////////////////////////////////////////////////
......
57 59
      Distorted.setMaxFragment(9);
58 60

  
59 61
      mView = view;
60
      mEffects = new AroundTheWorldEffectsManager();
61
      mQueues = new DistortedEffectQueues();
62
      mEffects.apply(mQueues);
62
      mManager = new AroundTheWorldEffectsManager();
63
      mEffects = new DistortedEffectQueues();
64
      mManager.apply(mEffects);
65
      mScreen = new DistortedFramebuffer(0);
63 66
      }
64 67

  
65 68
///////////////////////////////////////////////////////////////////////////////////////////////////
66 69

  
67 70
   AroundTheWorldEffectsManager getManager()
68 71
     {
69
     return mEffects;
72
     return mManager;
70 73
     }
71 74

  
72 75
///////////////////////////////////////////////////////////////////////////////////////////////////
......
74 77
   public void onDrawFrame(GL10 glUnused) 
75 78
      {
76 79
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
77
      mQueues.draw(System.currentTimeMillis(), mTexture, mGrid);
80
      mEffects.draw(System.currentTimeMillis(), mTexture, mGrid, mScreen);
78 81
      }
79 82

  
80 83
///////////////////////////////////////////////////////////////////////////////////////////////////
81 84
    
82 85
   public void onSurfaceChanged(GL10 glUnused, int width, int height) 
83 86
      {
84
      mQueues.abortEffects(EffectTypes.MATRIX);
87
      mEffects.abortEffects(EffectTypes.MATRIX);
85 88

  
86 89
      if( (float)mObjHeight/mObjWidth > (float)height/width )
87 90
        {
88 91
        int w = (height*mObjWidth)/mObjHeight;
89 92
        float factor = (float)height/mObjHeight;
90
        mQueues.move( new Static3D((width-w)/2,0,0) );
91
        mQueues.scale(factor);
93
        mEffects.move( new Static3D((width-w)/2,0,0) );
94
        mEffects.scale(factor);
92 95
        }
93 96
      else
94 97
        {
95 98
        int h = (width*mObjHeight)/mObjWidth;
96 99
        float factor = (float)width/mObjWidth;
97
        mQueues.move( new Static3D(0,(height-h)/2,0) );
98
        mQueues.scale(factor);
100
        mEffects.move( new Static3D(0,(height-h)/2,0) );
101
        mEffects.scale(factor);
99 102
        }
100 103

  
101
      Distorted.onSurfaceChanged(width, height);
104
      mScreen.resize(width,height);
102 105
      }
103 106

  
104 107
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/bean/BeanRenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29

  
30
import org.distorted.library.DistortedFramebuffer;
30 31
import org.distorted.library.EffectTypes;
31 32
import org.distorted.library.Distorted;
32 33
import org.distorted.library.DistortedTexture;
......
47 48
{
48 49
   private GLSurfaceView mView;
49 50
   private DistortedTexture mTexture;
50
   private DistortedEffectQueues mQueues;
51
   private DistortedEffectQueues mEffects;
52
   private DistortedFramebuffer mScreen;
51 53
   private GridFlat mGrid;
52 54
   private int bmpHeight, bmpWidth;
53 55
    
......
83 85
      dRight.add(p1);
84 86
      dRight.add(p1);
85 87

  
86
      mQueues = new DistortedEffectQueues();
87
      mQueues.distort(dLeft , pLeft , rLeft );
88
      mQueues.distort(dRight, pRight, rRight);
88
      mEffects = new DistortedEffectQueues();
89
      mEffects.distort(dLeft , pLeft , rLeft );
90
      mEffects.distort(dRight, pRight, rRight);
91

  
92
      mScreen = new DistortedFramebuffer(0);
89 93
      }
90 94

  
91 95
///////////////////////////////////////////////////////////////////////////////////////////////////
......
93 97
    public void onDrawFrame(GL10 glUnused) 
94 98
      {
95 99
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
96
      mQueues.draw(System.currentTimeMillis(), mTexture, mGrid);
100
      mEffects.draw(System.currentTimeMillis(), mTexture, mGrid, mScreen);
97 101
      }
98 102

  
99 103
///////////////////////////////////////////////////////////////////////////////////////////////////
100 104
    
101 105
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
102 106
      { 
103
      mQueues.abortEffects(EffectTypes.MATRIX);
107
      mEffects.abortEffects(EffectTypes.MATRIX);
104 108
         
105 109
      if( (float)bmpHeight/bmpWidth > (float)height/width )
106 110
        {
107 111
        int w = (height*bmpWidth)/bmpHeight;
108 112
        float factor = (float)height/bmpHeight;
109 113

  
110
        mQueues.move( new Static3D((width-w)/2,0,0) );
111
        mQueues.scale(factor);
114
        mEffects.move( new Static3D((width-w)/2,0,0) );
115
        mEffects.scale(factor);
112 116
        }
113 117
      else
114 118
        {
115 119
        int h = (width*bmpHeight)/bmpWidth;
116 120
        float factor = (float)width/bmpWidth;
117 121

  
118
        mQueues.move( new Static3D(0,(height-h)/2,0) );
119
        mQueues.scale(factor);
122
        mEffects.move( new Static3D(0,(height-h)/2,0) );
123
        mEffects.scale(factor);
120 124
        }
121 125
      
122
      Distorted.onSurfaceChanged(width, height); 
126
      mScreen.resize(width, height);
123 127
      }
124 128

  
125 129
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
28 28
import org.distorted.examples.R;
29 29
import org.distorted.library.Distorted;
30 30
import org.distorted.library.DistortedEffectQueues;
31
import org.distorted.library.DistortedFramebuffer;
31 32
import org.distorted.library.DistortedTexture;
32 33
import org.distorted.library.GridFlat;
33 34
import org.distorted.library.EffectTypes;
......
47 48
class CatAndDogRenderer implements GLSurfaceView.Renderer
48 49
{
49 50
    private GLSurfaceView mView;
50
    private DistortedEffectQueues mQueues;
51
    private DistortedEffectQueues mEffects;
51 52
    private DistortedTexture mTexture;
52 53
    private GridFlat mGrid;
54
    private DistortedFramebuffer mScreen;
53 55
    private int bmpHeight, bmpWidth;
54 56

  
55 57
///////////////////////////////////////////////////////////////////////////////////////////////////
......
59 61
      mView = v;
60 62

  
61 63
      mGrid   = new GridFlat(1,1);  // no vertex effects, grid can be a (1x1) quad.
62
      mQueues = new DistortedEffectQueues();
64
      mEffects = new DistortedEffectQueues();
63 65

  
64 66
      Static4D chromaRegion= new Static4D( 530, 200,100,100);
65 67
      Static4D alphaRegion = new Static4D( 230, 200,100,100);
......
68 70
      chromaDyn.add(new Static1D(1));
69 71
      chromaDyn.add(new Static1D(0));
70 72

  
71
      mQueues.chroma(chromaDyn, new Static3D(1,0,0), chromaRegion ,true);
73
      mEffects.chroma(chromaDyn, new Static3D(1,0,0), chromaRegion ,true);
72 74

  
73 75
      Dynamic1D alphaDyn = new Dynamic1D(3000,0.0f);
74 76
      alphaDyn.add(new Static1D(1));
75 77
      alphaDyn.add(new Static1D(0));
76 78

  
77
      mQueues.alpha( alphaDyn, alphaRegion, false );
79
      mEffects.alpha( alphaDyn, alphaRegion, false );
80

  
81
      mScreen = new DistortedFramebuffer(0);
78 82
      }
79 83

  
80 84
///////////////////////////////////////////////////////////////////////////////////////////////////
......
82 86
    public void onDrawFrame(GL10 glUnused) 
83 87
      {
84 88
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
85
      mQueues.draw(System.currentTimeMillis(), mTexture, mGrid);
89
      mEffects.draw(System.currentTimeMillis(), mTexture, mGrid, mScreen);
86 90
      }
87 91

  
88 92
///////////////////////////////////////////////////////////////////////////////////////////////////
......
141 145
      diRotate.add(new Static1D(  0));
142 146
      diRotate.add(new Static1D(360));
143 147
      
144
      mQueues.abortEffects(EffectTypes.MATRIX);
148
      mEffects.abortEffects(EffectTypes.MATRIX);
145 149

  
146
      mQueues.move(diMove);
147
      mQueues.scale(diScale);
148
      mQueues.rotate( diRotate, new Static3D(0,0,1), new Static3D(bmpWidth/2,bmpHeight/2,0) );
150
      mEffects.move(diMove);
151
      mEffects.scale(diScale);
152
      mEffects.rotate( diRotate, new Static3D(0,0,1), new Static3D(bmpWidth/2,bmpHeight/2,0) );
149 153

  
150
      Distorted.onSurfaceChanged(width, height); 
154
      mScreen.resize(width, height);
151 155
      }
152 156
}
src/main/java/org/distorted/examples/check/CheckRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedFramebuffer;
31 32
import org.distorted.library.DistortedTexture;
32 33
import org.distorted.library.DistortedEffectQueues;
33 34
import org.distorted.library.GridFlat;
......
56 57

  
57 58
    private GLSurfaceView mView;
58 59
    private DistortedTexture mTexture;
59
    private DistortedEffectQueues mQueues;
60
    private DistortedEffectQueues mEffects;
60 61
    private GridFlat mGrid;
62
    private DistortedFramebuffer mScreen;
61 63
    private int bmpHeight, bmpWidth;
62 64

  
63 65
///////////////////////////////////////////////////////////////////////////////////////////////////
......
65 67
    CheckRenderer(GLSurfaceView view)
66 68
      { 
67 69
      mView = view;
68
      mQueues = new DistortedEffectQueues();
70
      mEffects = new DistortedEffectQueues();
69 71

  
70 72
      CheckActivity act = (CheckActivity)mView.getContext();
71 73

  
72 74
      Distorted.setMaxVertex(act.getMaxV());
73 75
      Distorted.setMaxFragment(act.getMaxF());
76

  
77
      mScreen = new DistortedFramebuffer(0);
74 78
      }
75 79

  
76 80
///////////////////////////////////////////////////////////////////////////////////////////////////
......
78 82
    public void onDrawFrame(GL10 glUnused) 
79 83
      {
80 84
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
81
      mQueues.draw(System.currentTimeMillis(), mTexture, mGrid);
85
      mEffects.draw(System.currentTimeMillis(), mTexture, mGrid, mScreen);
82 86
      }
83 87

  
84 88
///////////////////////////////////////////////////////////////////////////////////////////////////
85 89
    
86 90
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
87 91
      { 
88
      mQueues.abortEffects(EffectTypes.MATRIX);
92
      mEffects.abortEffects(EffectTypes.MATRIX);
89 93
      
90 94
      if( (float)bmpHeight/bmpWidth > (float)height/width )
91 95
        {
92 96
        int w = (height*bmpWidth)/bmpHeight;
93 97
        float factor = (float)height/bmpHeight;
94 98

  
95
        mQueues.move( new Static3D((width-w)/2,0,0) );
96
        mQueues.scale(factor);
99
        mEffects.move( new Static3D((width-w)/2,0,0) );
100
        mEffects.scale(factor);
97 101
        }
98 102
      else
99 103
        {
100 104
        int h = (width*bmpHeight)/bmpWidth;
101 105
        float factor = (float)width/bmpWidth;
102 106

  
103
        mQueues.move( new Static3D(0,(height-h)/2,0) );
104
        mQueues.scale(factor);
107
        mEffects.move( new Static3D(0,(height-h)/2,0) );
108
        mEffects.scale(factor);
105 109
        }
106 110
      
107
      Distorted.onSurfaceChanged(width, height);
111
      mScreen.resize(width, height);
108 112
      }
109 113

  
110 114
///////////////////////////////////////////////////////////////////////////////////////////////////
......
146 150
      dSwirl.add(new Static3D(        0, bmpHeight/2, 0));
147 151
      dSwirl.add(new Static3D( bmpWidth, bmpHeight/2, 0));
148 152

  
149
      long swirlEffectID = mQueues.swirl( new Static1D(30), dSwirl, new Static4D( 0,0,40,40) );
153
      long swirlEffectID = mEffects.swirl( new Static1D(30), dSwirl, new Static4D( 0,0,40,40) );
150 154

  
151 155
      if( swirlEffectID<0 )
152 156
        {
......
157 161
      dDeform.add(new Static3D( 0,         0,0));
158 162
      dDeform.add(new Static3D( 0,-bmpHeight,0));
159 163

  
160
      long deformEffectID = mQueues.deform(dDeform, new Static3D(bmpWidth/2,0,0) );
164
      long deformEffectID = mEffects.deform(dDeform, new Static3D(bmpWidth/2,0,0) );
161 165

  
162 166
      if( deformEffectID<0 )
163 167
        {
......
170 174
      inter.add(new Static1D(0));
171 175
      inter.add(new Static1D(1));
172 176

  
173
      long chromaEffectID = mQueues.chroma(inter, color);
177
      long chromaEffectID = mEffects.chroma(inter, color);
174 178

  
175 179
      if( chromaEffectID<0 )
176 180
        {
src/main/java/org/distorted/examples/cubes/CubesRenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29

  
30
import org.distorted.library.DistortedFramebuffer;
30 31
import org.distorted.library.DistortedTexture;
31 32
import org.distorted.library.DistortedEffectQueues;
32 33
import org.distorted.library.GridObject;
......
47 48
{
48 49
    private GLSurfaceView mView;
49 50
    private DistortedTexture mTexture;
50
    private DistortedEffectQueues mQueues;
51
    private DistortedEffectQueues mEffects;
51 52
    private GridObject mGrid;
53
    private DistortedFramebuffer mScreen;
52 54
    private DynamicQuat mQuatInt1, mQuatInt2;
53 55
    private int mObjWidth, mObjHeight;
54 56

  
......
63 65

  
64 66
      CubesActivity act = (CubesActivity)v.getContext();
65 67

  
66
      mQueues  = new DistortedEffectQueues();
68
      mEffects = new DistortedEffectQueues();
67 69
      mTexture = act.getTexture();
68 70
      mGrid    = act.getGrid();
69 71

  
......
78 80

  
79 81
      mQuatInt1.add(mQuat1);
80 82
      mQuatInt2.add(mQuat2);
83

  
84
      mScreen = new DistortedFramebuffer(0);
81 85
      }
82 86

  
83 87
///////////////////////////////////////////////////////////////////////////////////////////////////
......
85 89
    public void onDrawFrame(GL10 glUnused) 
86 90
      {
87 91
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
88
      mQueues.draw(System.currentTimeMillis(),mTexture,mGrid);
92
      mEffects.draw(System.currentTimeMillis(),mTexture,mGrid, mScreen);
89 93
      }
90 94

  
91 95
///////////////////////////////////////////////////////////////////////////////////////////////////
......
94 98
      {
95 99
      mScreenMin = width<height ? width:height;
96 100
    	
97
      mQueues.abortEffects(EffectTypes.MATRIX);
101
      mEffects.abortEffects(EffectTypes.MATRIX);
98 102
      float factor;
99 103

  
100 104
      if( width*mObjHeight > height*mObjWidth ) // screen is more 'horizontal' than the Object
......
106 110
        factor = (0.8f*width)/mObjWidth;
107 111
        }
108 112

  
109
      mQueues.move( new Static3D( (width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , 0) );
110
      mQueues.scale(factor);
113
      mEffects.move( new Static3D( (width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , 0) );
114
      mEffects.scale(factor);
111 115
      Static3D center = new Static3D(mObjWidth/2,mObjHeight/2, 0);
112 116

  
113
      mQueues.quaternion(mQuatInt1, center);
114
      mQueues.quaternion(mQuatInt2, center);
117
      mEffects.quaternion(mQuatInt1, center);
118
      mEffects.quaternion(mQuatInt2, center);
115 119
       
116
      Distorted.onSurfaceChanged(width, height); 
120
      mScreen.resize(width, height);
117 121
      }
118 122

  
119 123
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/deform/DeformRenderer.java
23 23
import javax.microedition.khronos.opengles.GL10;
24 24

  
25 25
import org.distorted.library.Distorted;
26
import org.distorted.library.DistortedFramebuffer;
26 27
import org.distorted.library.DistortedTexture;
27 28
import org.distorted.library.DistortedEffectQueues;
28 29
import org.distorted.library.GridObject;
......
51 52

  
52 53
   private GLSurfaceView mView;
53 54
   private DistortedTexture fpsTexture, stretchTexture;
54
   private DistortedEffectQueues fpsQueues, stretchQueues;
55
   private DistortedEffectQueues fpsEffects, stretchEffects;
55 56
   private GridObject fpsGrid, stretchGrid;
57
   private DistortedFramebuffer mScreen;
56 58
   private Static3D touchPoint;
57 59

  
58 60
   private Dynamic3D mReleasedDistortDynamic;
......
90 92
      mPaint.setAntiAlias(true);
91 93
      mPaint.setTextAlign(Paint.Align.CENTER);
92 94

  
93
      fpsQueues     = new DistortedEffectQueues();
94
      stretchQueues = new DistortedEffectQueues();
95
      fpsEffects = new DistortedEffectQueues();
96
      stretchEffects = new DistortedEffectQueues();
95 97

  
96 98
      mRegion = new Static4D(0,0,50,50);
97 99

  
......
147 149
        }
148 150

  
149 151
      mMovingShearDynamic.add(vShear[0]);
152

  
153
      mScreen = new DistortedFramebuffer(0);
150 154
      }
151 155

  
152 156
///////////////////////////////////////////////////////////////////////////////////////////////////
......
178 182
    
179 183
     long time = System.currentTimeMillis();
180 184
      
181
     stretchQueues.draw(time,stretchTexture,stretchGrid);
185
     stretchEffects.draw(time,stretchTexture,stretchGrid,mScreen);
182 186
      
183 187
     mPaint.setColor(0xffffffff);
184 188
     fpsCanvas.drawRect(0, 0, fpsW, fpsH, mPaint);
......
186 190
     fpsCanvas.drawText(fpsString, fpsW/2, 5*fpsH/6, mPaint);
187 191
      
188 192
     fpsTexture.setTexture(fpsBitmap);
189
     fpsQueues.draw(time,fpsTexture,fpsGrid);
193
     fpsEffects.draw(time,fpsTexture,fpsGrid,mScreen);
190 194
      
191 195
     computeFPS(time);
192 196
     }
......
198 202
     scrHeight = height;
199 203
     scrWidth  = width;
200 204

  
201
     Distorted.onSurfaceChanged(width, height);
202
      
203 205
     if( !bitmapCreated )
204 206
       {
205 207
       createBitmap(scrWidth/2,scrHeight/2);
206
       stretchQueues.abortAllEffects();
207
       fpsQueues.abortAllEffects();
208
       stretchQueues.move( new Static3D(scrWidth/4,scrHeight/4,0) );
209
       fpsQueues.move( new Static3D(5,5,0) );
208
       stretchEffects.abortAllEffects();
209
       fpsEffects.abortAllEffects();
210
       stretchEffects.move( new Static3D(scrWidth/4,scrHeight/4,0) );
211
       fpsEffects.move( new Static3D(5,5,0) );
210 212
       bitmapCreated=true;
211 213
       }
212 214
     else
213 215
       {
214
       stretchQueues.abortEffects(EffectTypes.VERTEX);
215
       stretchQueues.abortEffects(EffectTypes.FRAGMENT);
216
       stretchQueues.abortEffects(EffectNames.SHEAR);
216
       stretchEffects.abortEffects(EffectTypes.VERTEX);
217
       stretchEffects.abortEffects(EffectTypes.FRAGMENT);
218
       stretchEffects.abortEffects(EffectNames.SHEAR);
217 219
       }
220

  
221
     mScreen.resize(width, height);
218 222
     }
219 223

  
220 224
///////////////////////////////////////////////////////////////////////////////////////////////////
......
288 292
     switch(mMode)
289 293
       {
290 294
       case DISTORT: vDistort[0].set(0,0,0);
291
                     mLastEffect = stretchQueues.distort( mMovingDistortDynamic, touchPoint, mRegion);
295
                     mLastEffect = stretchEffects.distort( mMovingDistortDynamic, touchPoint, mRegion);
292 296
                     break;
293 297
       case DEFORM : vDeform[0].set(0,0,0);
294
                     mLastEffect = stretchQueues.deform( mMovingDeformDynamic, touchPoint, mRegion);
298
                     mLastEffect = stretchEffects.deform( mMovingDeformDynamic, touchPoint, mRegion);
295 299
                     break;
296 300
       case SHEAR  : vShear[0].set(0,0,0);
297
                     mLastEffect = stretchQueues.shear(mMovingShearDynamic, touchPoint);
301
                     mLastEffect = stretchEffects.shear(mMovingShearDynamic, touchPoint);
298 302
                     break;
299 303
       }
300 304
     }
......
318 322

  
319 323
   void up()
320 324
     {
321
     stretchQueues.abortEffect(mLastEffect);
325
     stretchEffects.abortEffect(mLastEffect);
322 326

  
323 327
     float damp = -0.65f;
324 328

  
......
329 333
                       vDistort[i].set( vDistort[i-1].getX()*damp, vDistort[i-1].getY()*damp );
330 334
                       }
331 335
                     vDistort[NUM_VECTORS-1].set(0,0);
332
                     stretchQueues.distort( mReleasedDistortDynamic, touchPoint, mRegion);
336
                     stretchEffects.distort( mReleasedDistortDynamic, touchPoint, mRegion);
333 337
                     break;
334 338
       case DEFORM : for(int i=1; i<NUM_VECTORS-1; i++)
335 339
                       {
336 340
                       vDeform[i].set( vDeform[i-1].getX()*damp, vDeform[i-1].getY()*damp );
337 341
                       }
338 342
                     vDeform[NUM_VECTORS-1].set(0,0);
339
                     stretchQueues.deform( mReleasedDeformDynamic, touchPoint, mRegion);
343
                     stretchEffects.deform( mReleasedDeformDynamic, touchPoint, mRegion);
340 344
                     break;
341 345
       case SHEAR  : for(int i=1; i<NUM_VECTORS-1; i++)
342 346
                       {
343 347
                       vShear[i].set( vShear[i-1].getX()*damp, vShear[i-1].getY()*damp );
344 348
                       }
345 349
                     vShear[NUM_VECTORS-1].set(0,0);
346
                     stretchQueues.shear(mReleasedShearDynamic, touchPoint);
350
                     stretchEffects.shear(mReleasedShearDynamic, touchPoint);
347 351
                     break;
348 352
       }
349 353
     }
src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedFramebuffer;
31 32
import org.distorted.library.DistortedTexture;
32 33
import org.distorted.library.DistortedEffectQueues;
33 34
import org.distorted.library.GridFlat;
......
50 51
   
51 52
   private GLSurfaceView mView;
52 53
   private DistortedTexture[] mTexture;
53
   private DistortedEffectQueues[] mQueues;
54
   private DistortedEffectQueues[] mEffects;
54 55
   private GridFlat mGrid;
56
   private DistortedFramebuffer mScreen;
55 57
   private int bmpHeight, bmpWidth;
56 58
    
57 59
///////////////////////////////////////////////////////////////////////////////////////////////////
......
65 67
      dDistort.add(new Static3D(-25,0,0));
66 68
      Static3D mPoint = new Static3D(305, 380, 0);
67 69

  
68
      mQueues = new DistortedEffectQueues[NUM];
69
      mQueues[0] = new DistortedEffectQueues();
70
      mEffects = new DistortedEffectQueues[NUM];
71
      mEffects[0] = new DistortedEffectQueues();
70 72
      for(int i=1; i<NUM; i++)
71
        mQueues[i] = new DistortedEffectQueues(mQueues[0], Distorted.CLONE_VERTEX|Distorted.CLONE_FRAGMENT);
73
        mEffects[i] = new DistortedEffectQueues(mEffects[0], Distorted.CLONE_VERTEX|Distorted.CLONE_FRAGMENT);
72 74

  
73 75
      // Add the effects only to the first queue - all VERTEX and FRAGMENT effects are shared!
74 76
      // (Matrix effect cannot be shared as we have to display each Texture in a different location)
75
      mQueues[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));  // enlarge the nose
76
      mQueues[0].distort(dDistort,mPoint);                                 // keep moving the whole bitmap left and right.
77
      mEffects[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));  // enlarge the nose
78
      mEffects[0].distort(dDistort,mPoint);                                 // keep moving the whole bitmap left and right.
79

  
80
      mScreen = new DistortedFramebuffer(0);
77 81
      }
78 82

  
79 83
///////////////////////////////////////////////////////////////////////////////////////////////////
......
107 111
      
108 112
      long time = System.currentTimeMillis();
109 113
      
110
      for(int i=NUM-1; i>=0; i--) mQueues[i].draw(time, mTexture[i], mGrid);
114
      for(int i=NUM-1; i>=0; i--) mEffects[i].draw(time, mTexture[i], mGrid, mScreen);
111 115
      }
112 116

  
113 117
///////////////////////////////////////////////////////////////////////////////////////////////////
......
116 120
      {  
117 121
      for(int i=NUM-1; i>=0; i--) 
118 122
        {   
119
        mQueues[i].abortEffects(EffectTypes.MATRIX);
123
        mEffects[i].abortEffects(EffectTypes.MATRIX);
120 124
        }
121 125
      
122 126
      if( (float)bmpHeight/(NUM*bmpWidth) > (float)height/width )
......
126 130

  
127 131
        for(int i=NUM-1; i>=0; i--) 
128 132
          {
129
          mQueues[i].move( new Static3D((width-NUM*w)/2 +i*w ,0,0) );
130
          mQueues[i].scale(factor);
133
          mEffects[i].move( new Static3D((width-NUM*w)/2 +i*w ,0,0) );
134
          mEffects[i].scale(factor);
131 135
          }
132 136
        }
133 137
      else
......
138 142

  
139 143
        for(int i=NUM-1; i>=0; i--) 
140 144
          {
141
          mQueues[i].move( new Static3D(i*w,(height-h)/2,0) );
142
          mQueues[i].scale(factor);
145
          mEffects[i].move( new Static3D(i*w,(height-h)/2,0) );
146
          mEffects[i].scale(factor);
143 147
          }
144 148
        }
145 149
         
146
      Distorted.onSurfaceChanged(width, height); 
150
      mScreen.resize(width, height);
147 151
      }
148 152

  
149 153
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedFramebuffer;
31 32
import org.distorted.library.GridFlat;
32 33
import org.distorted.library.DistortedTexture;
33 34
import org.distorted.library.DistortedEffectQueues;
......
50 51
   private static final int NUM = 3;
51 52
   
52 53
   private GLSurfaceView mView;
53
   private DistortedEffectQueues[] mQueue;
54
   private DistortedEffectQueues[] mEffects;
54 55
   private DistortedTexture mTexture;
55 56
   private GridFlat mGrid;
57
   private DistortedFramebuffer mScreen;
56 58
   private int bmpHeight, bmpWidth;
57 59
    
58 60
///////////////////////////////////////////////////////////////////////////////////////////////////
......
61 63
      {     
62 64
      mView = v;
63 65
      
64
      // mQueue[0] effects
66
      // mEffects[0] effects
65 67
      Static3D pLeft = new Static3D(214, 206, 0);
66 68
      Static3D pRight= new Static3D(390, 212, 0);
67 69
      Static4D RegionEye = new Static4D(0,0,60,60);
68 70
      
69
      // mQueue[1] effects
71
      // mEffects[1] effects
70 72
      Dynamic3D dyn = new Dynamic3D(1000,0.0f);
71 73
      dyn.add(new Static3D( 50,0,0));
72 74
      dyn.add(new Static3D(-50,0,0));
73 75
      Static3D pNose1 = new Static3D(305, 340, 0);
74 76
      
75
      // we don't need to prepare anything for mQueue[2] effects
77
      // we don't need to prepare anything for mEffects[2] effects
76 78

  
77
      mQueue= new DistortedEffectQueues[NUM];
79
      mEffects = new DistortedEffectQueues[NUM];
78 80

  
79
      for(int i=0; i<NUM; i++) mQueue[i] = new DistortedEffectQueues();
81
      for(int i=0; i<NUM; i++) mEffects[i] = new DistortedEffectQueues();
80 82

  
81 83
      Dynamic1D sink = new Dynamic1D(2000,0.0f);
82 84
      sink.add(new Static1D( 1));
83 85
      sink.add(new Static1D(10));
84 86

  
85
      mQueue[0].sink(sink, pLeft, RegionEye);
86
      mQueue[0].sink(sink, pRight,RegionEye);
87
      mQueue[1].distort(dyn, pNose1);
87
      mEffects[0].sink(sink, pLeft, RegionEye);
88
      mEffects[0].sink(sink, pRight,RegionEye);
89
      mEffects[1].distort(dyn, pNose1);
88 90

  
89 91
      Dynamic1D chromaDyn = new Dynamic1D(3000,0.0f);
90 92
      chromaDyn.add(new Static1D(0));
91 93
      chromaDyn.add(new Static1D(1));
92 94

  
93
      mQueue[2].chroma(chromaDyn, new Static3D(0,1,0) );
95
      mEffects[2].chroma(chromaDyn, new Static3D(0,1,0) );
96

  
97
      mScreen = new DistortedFramebuffer(0);
94 98
      }
95 99

  
96 100
///////////////////////////////////////////////////////////////////////////////////////////////////
......
101 105
      
102 106
     long time = System.currentTimeMillis();
103 107
   
104
     for(int i=NUM-1; i>=0; i--) mQueue[i].draw(time, mTexture, mGrid);
108
     for(int i=NUM-1; i>=0; i--) mEffects[i].draw(time, mTexture, mGrid, mScreen);
105 109
     }
106 110

  
107 111
///////////////////////////////////////////////////////////////////////////////////////////////////
......
110 114
     {
111 115
     for(int i=NUM-1; i>=0; i--)
112 116
       {
113
       mQueue[i].abortEffects(EffectTypes.MATRIX);
117
       mEffects[i].abortEffects(EffectTypes.MATRIX);
114 118
       }
115 119
      
116 120
     if( (float)bmpHeight/(NUM*bmpWidth) > (float)height/width )
......
120 124

  
121 125
       for(int i=NUM-1; i>=0; i--)
122 126
         {
123
         mQueue[i].move( new Static3D((width-NUM*w)/2 +i*w , 0, 0) );
124
         mQueue[i].scale(factor);
127
         mEffects[i].move( new Static3D((width-NUM*w)/2 +i*w , 0, 0) );
128
         mEffects[i].scale(factor);
125 129
         }
126 130
       }
127 131
     else
......
132 136

  
133 137
       for(int i=NUM-1; i>=0; i--)
134 138
         {
135
         mQueue[i].move( new Static3D(i*w, (height-h)/2, 0) );
136
         mQueue[i].scale(factor);
139
         mEffects[i].move( new Static3D(i*w, (height-h)/2, 0) );
140
         mEffects[i].scale(factor);
137 141
         }
138 142
       }
139 143
       
140
     Distorted.onSurfaceChanged(width, height);
144
     mScreen.resize(width, height);
141 145
     }
142 146

  
143 147
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
29 29
import android.opengl.GLES20;
30 30
import android.opengl.GLSurfaceView;
31 31

  
32
import org.distorted.library.DistortedFramebuffer;
32 33
import org.distorted.library.GridFlat;
33 34
import org.distorted.library.DistortedEffectQueues;
34 35
import org.distorted.library.DistortedTexture;
......
40 41
   {  
41 42
   private DynamicSurfaceView mView;
42 43
   private DistortedTexture mTexture;
43
   private DistortedEffectQueues mQueues;
44
   private DistortedEffectQueues mEffects;
45
   private DistortedFramebuffer mScreen;
44 46
   private GridFlat mGrid;
45 47
   private Canvas mCanvas;
46 48
   private Bitmap mBitmap;
......
60 62
      
61 63
     mView   = v;
62 64
     mGrid   = new GridFlat(1,1);
63
     mQueues = new DistortedEffectQueues();
65
     mEffects = new DistortedEffectQueues();
66
     mScreen = new DistortedFramebuffer(0);
64 67
     }
65 68

  
66 69
///////////////////////////////////////////////////////////////////////////////////////////////////
......
88 91
     mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
89 92
     mCanvas = new Canvas(mBitmap);
90 93

  
91
     Distorted.onSurfaceChanged(texW,texH);
94
     mScreen.resize(texW,texH);
92 95
     mView.onSurfaceChanged(texW,texH);
93 96
     }
94 97
   
......
103 106
     mCanvas.drawRect(0, 0, texW, texH, mPaint);
104 107
     mView.drawCurve(mCanvas,time);
105 108
     mTexture.setTexture(mBitmap);
106
     mQueues.draw(time,mTexture,mGrid);
109
     mEffects.draw(time,mTexture,mGrid,mScreen);
107 110
     }
108 111

  
109 112
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/effectqueue/EffectQueueActivity.java
166 166

  
167 167
  public void removeByID(View view)
168 168
    {
169
    Long currID = (Long)mID.getItemAtPosition(mPosID);
170

  
171
    EffectQueueSurfaceView v = (EffectQueueSurfaceView) this.findViewById(R.id.effects2dSurfaceView);
172
    v.getRenderer().getQueues().abortEffect(currID);
169
    try
170
      {
171
      Long currID = (Long)mID.getItemAtPosition(mPosID);
172
      EffectQueueSurfaceView v = (EffectQueueSurfaceView) this.findViewById(R.id.effects2dSurfaceView);
173
      v.getRenderer().getQueues().abortEffect(currID);
174
      }
175
    catch(IndexOutOfBoundsException ex)
176
      {
177
      android.util.Log.e("effectQueue", "Failure trying to remove "+mPosID);
178
      }
173 179
    }
174 180

  
175 181
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
29 29
import android.opengl.GLES20;
30 30
import android.opengl.GLSurfaceView;
31 31

  
32
import org.distorted.library.DistortedFramebuffer;
32 33
import org.distorted.library.GridFlat;
33 34
import org.distorted.library.DistortedTexture;
34 35
import org.distorted.library.DistortedEffectQueues;
......
53 54

  
54 55
  private DistortedTexture mTexture;
55 56
  private GridFlat mGrid;
56
  private DistortedEffectQueues mQueues;
57
  private DistortedEffectQueues mEffects;
58
  private DistortedFramebuffer mScreen;
57 59

  
58 60
///////////////////////////////////////////////////////////////////////////////////////////////////
59 61

  
......
71 73

  
72 74
    mGrid    = new GridFlat(80,80*texHeight/texWidth);
73 75
    mTexture = new DistortedTexture(texWidth,texHeight);
74
    mQueues  = new DistortedEffectQueues();
76
    mEffects = new DistortedEffectQueues();
75 77

  
76
    mQueues.registerForMessages(this);
78
    mEffects.registerForMessages(this);
79

  
80
    mScreen = new DistortedFramebuffer(0);
77 81
    }
78 82

  
79 83
///////////////////////////////////////////////////////////////////////////////////////////////////
80 84

  
81 85
  DistortedEffectQueues getQueues()
82 86
    {
83
    return mQueues;
87
    return mEffects;
84 88
    }
85 89

  
86 90
///////////////////////////////////////////////////////////////////////////////////////////////////
......
115 119

  
116 120
  public void onSurfaceChanged(GL10 glUnused, int width, int height)
117 121
    {
118
    mQueues.abortEffects(EffectTypes.MATRIX);
119
    mQueues.scale( new Static3D((float)width/texWidth,(float)height/texHeight,1) );
120
    Distorted.onSurfaceChanged(width,height);
122
    mEffects.abortEffects(EffectTypes.MATRIX);
123
    mEffects.scale( new Static3D((float)width/texWidth,(float)height/texHeight,1) );
124
    mScreen.resize(width,height);
121 125
    mView.setScreenSize(width,height);
122 126
    }
123 127
   
......
126 130
  public void onDrawFrame(GL10 glUnused)
127 131
    {   
128 132
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
129
    mQueues.draw(System.currentTimeMillis(), mTexture,mGrid);
133
    mEffects.draw(System.currentTimeMillis(), mTexture,mGrid,mScreen);
130 134
    }
131 135

  
132 136
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedFramebuffer;
29 30
import org.distorted.library.DistortedTexture;
30 31
import org.distorted.library.GridFlat;
31 32
import org.distorted.library.DistortedEffectQueues;
......
48 49
{
49 50
    private GLSurfaceView mView;
50 51
    private DistortedTexture mObjectTexture, mBackgroundTexture, mCenterTexture, mRegionTexture;
51
    private DistortedEffectQueues mObjectQueues, mBackgroundQueues, mCenterQueues, mRegionQueues;
52
    private DistortedEffectQueues mObjectEffects, mBackgroundEffects, mCenterEffects, mRegionEffects;
53
    private DistortedFramebuffer mScreen;
52 54
    private GridFlat mQuad;
53 55
    private GridObject mObjectGrid;
54 56
    private int mObjWidth, mObjHeight, mObjDepth;
......
74 76

  
75 77
      mObjectTexture     = act.getTexture();
76 78
      mObjectGrid        = act.getGrid();
77
      mObjectQueues      = act.getQueues();
79
      mObjectEffects = act.getQueues();
78 80
      mBackgroundTexture = new DistortedTexture(100,100);
79 81
      mCenterTexture     = new DistortedTexture(100,100);
80 82
      mRegionTexture     = new DistortedTexture(100,100);
81 83
      mQuad              = new GridFlat(1,1);
82
      mBackgroundQueues  = new DistortedEffectQueues();
83
      mCenterQueues      = new DistortedEffectQueues();
84
      mRegionQueues      = new DistortedEffectQueues();
84
      mBackgroundEffects = new DistortedEffectQueues();
85
      mCenterEffects = new DistortedEffectQueues();
86
      mRegionEffects = new DistortedEffectQueues();
85 87

  
86 88
      mObjWidth = mObjectTexture.getWidth();
87 89
      mObjHeight= mObjectTexture.getHeight();
......
107 109
      mRegionScaleInter = new Dynamic3D();
108 110
      mRegionScalePoint = new Static3D(0,0,0);
109 111
      mRegionScaleInter.add(mRegionScalePoint);
112

  
113
      mScreen = new DistortedFramebuffer(0);
110 114
      }
111 115

  
112 116
///////////////////////////////////////////////////////////////////////////////////////////////////
......
133 137

  
134 138
      long time = System.currentTimeMillis();
135 139

  
136
      mBackgroundQueues.draw(time,mBackgroundTexture,mQuad);
137
      mObjectQueues.draw(time,mObjectTexture,mObjectGrid);
140
      mBackgroundEffects.draw(time,mBackgroundTexture,mQuad,mScreen);
141
      mObjectEffects.draw(time,mObjectTexture,mObjectGrid,mScreen);
138 142

  
139 143
      if( Effects3DActivity.supportsCenter() )
140 144
        {
141
        mCenterQueues.draw(time, mCenterTexture,mQuad);
142
        if( Effects3DActivity.supportsRegion() ) mRegionQueues.draw(time, mRegionTexture,mQuad);
145
        mCenterEffects.draw(time, mCenterTexture,mQuad,mScreen);
146
        if( Effects3DActivity.supportsRegion() ) mRegionEffects.draw(time, mRegionTexture,mQuad,mScreen);
143 147
        }
144 148
      }
145 149

  
......
149 153
      {
150 154
      mScreenMin = width<height ? width:height;
151 155

  
152
      mObjectQueues.abortEffects(EffectTypes.MATRIX);
153
      mBackgroundQueues.abortEffects(EffectTypes.MATRIX);
154
      mCenterQueues.abortEffects(EffectTypes.MATRIX);
155
      mRegionQueues.abortEffects(EffectTypes.MATRIX);
156
      mObjectEffects.abortEffects(EffectTypes.MATRIX);
157
      mBackgroundEffects.abortEffects(EffectTypes.MATRIX);
158
      mCenterEffects.abortEffects(EffectTypes.MATRIX);
159
      mRegionEffects.abortEffects(EffectTypes.MATRIX);
156 160

  
157 161
      float factorCen;
158 162
      int centerSize = mCenterTexture.getWidth();
......
178 182

  
179 183
      Static3D rotateObj = new Static3D(mObjWidth/2,mObjHeight/2, 0);
180 184

  
181
      mObjectQueues.move( new Static3D( (width-mFactorObj*mObjWidth)/2 , (height-mFactorObj*mObjHeight)/2 , 0) );
182
      mObjectQueues.scale(mFactorObj);
183
      mObjectQueues.quaternion(mQuatInt1, rotateObj);
184
      mObjectQueues.quaternion(mQuatInt2, rotateObj);
185
      mObjectEffects.move( new Static3D( (width-mFactorObj*mObjWidth)/2 , (height-mFactorObj*mObjHeight)/2 , 0) );
186
      mObjectEffects.scale(mFactorObj);
187
      mObjectEffects.quaternion(mQuatInt1, rotateObj);
188
      mObjectEffects.quaternion(mQuatInt2, rotateObj);
185 189

  
186 190
      Static3D rotateCen = new Static3D(width/2,height/2, 0);
187 191

  
188
      mCenterQueues.quaternion(mQuatInt1, rotateCen);
189
      mCenterQueues.quaternion(mQuatInt2, rotateCen);
192
      mCenterEffects.quaternion(mQuatInt1, rotateCen);
193
      mCenterEffects.quaternion(mQuatInt2, rotateCen);
190 194

  
191
      mCenterQueues.move( new Static3D( (width -factorCen*centerSize-mFactorObj*mObjWidth )/2 ,
195
      mCenterEffects.move( new Static3D( (width -factorCen*centerSize-mFactorObj*mObjWidth )/2 ,
192 196
                                  (height-factorCen*centerSize-mFactorObj*mObjHeight)/2 , mFactorObj*mObjDepth/2+10) );
193
      mCenterQueues.move(mCenterInter);
194
      mCenterQueues.scale(factorCen);
197
      mCenterEffects.move(mCenterInter);
198
      mCenterEffects.scale(factorCen);
195 199

  
196
      mRegionQueues.quaternion(mQuatInt1, rotateCen);
197
      mRegionQueues.quaternion(mQuatInt2, rotateCen);
200
      mRegionEffects.quaternion(mQuatInt1, rotateCen);
201
      mRegionEffects.quaternion(mQuatInt2, rotateCen);
198 202

  
199
      mRegionQueues.move( new Static3D( (width -mFactorObj*mObjWidth )/2 ,
203
      mRegionEffects.move( new Static3D( (width -mFactorObj*mObjWidth )/2 ,
200 204
                                  (height-mFactorObj*mObjHeight)/2 , mFactorObj*mObjDepth/2+12) );
201
      mRegionQueues.move(mCenterInter);
202
      mRegionQueues.move(mRegionInter);
203
      mRegionQueues.scale(mRegionScaleInter);
204
      mRegionQueues.move( new Static3D( -regionSize/2 , -regionSize/2 , 0) );
205
      mRegionEffects.move(mCenterInter);
206
      mRegionEffects.move(mRegionInter);
207
      mRegionEffects.scale(mRegionScaleInter);
208
      mRegionEffects.move( new Static3D( -regionSize/2 , -regionSize/2 , 0) );
205 209

  
206 210
      int backgroundSize = mBackgroundTexture.getWidth();
207 211
      float factorBackX = ((float)width)/backgroundSize;
208 212
      float factorBackY = ((float)height)/backgroundSize;
209 213

  
210
      mBackgroundQueues.move(new Static3D( -width/2, -height/2,-mFactorObj*(mObjWidth+mObjHeight)/2) );
211
      mBackgroundQueues.scale(new Static3D(2*factorBackX, 2*factorBackY, 1.0f) );
214
      mBackgroundEffects.move(new Static3D( -width/2, -height/2,-mFactorObj*(mObjWidth+mObjHeight)/2) );
215
      mBackgroundEffects.scale(new Static3D(2*factorBackX, 2*factorBackY, 1.0f) );
212 216

  
213
      Distorted.onSurfaceChanged(width, height);
217
      mScreen.resize(width, height);
214 218
      }
215 219

  
216 220
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/fbo/FBORenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29

  
30
import org.distorted.library.DistortedFramebuffer;
30 31
import org.distorted.library.DistortedObjectTree;
31 32
import org.distorted.library.Distorted;
32 33
import org.distorted.library.GridCubes;
......
49 50
class FBORenderer implements GLSurfaceView.Renderer 
50 51
{
51 52
   private GLSurfaceView mView;
52
   private DistortedEffectQueues mQueues;
53
   private int lisaHeight, lisaWidth;
54
    
53
   private DistortedEffectQueues mEffects;
54
   private DistortedFramebuffer mScreen;
55 55
   private DistortedObjectTree mRoot;
56
    
56
   private int lisaHeight, lisaWidth;
57

  
57 58
///////////////////////////////////////////////////////////////////////////////////////////////////
58 59

  
59 60
   FBORenderer(GLSurfaceView v)
60 61
      {
61
      mView = v;
62
      mQueues = new DistortedEffectQueues();
62
      mView   = v;
63
      mEffects= new DistortedEffectQueues();
64
      mScreen = new DistortedFramebuffer(0);
63 65
      }
64 66

  
65 67
///////////////////////////////////////////////////////////////////////////////////////////////////
......
67 69
    public void onDrawFrame(GL10 glUnused) 
68 70
      {
69 71
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
70
      mRoot.draw(System.currentTimeMillis());
72
      mRoot.draw(System.currentTimeMillis(),mScreen);
71 73
      }
72 74

  
73 75
///////////////////////////////////////////////////////////////////////////////////////////////////
74 76
    
75 77
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
76 78
      { 
77
      mQueues.abortEffects(EffectTypes.MATRIX);
79
      mEffects.abortEffects(EffectTypes.MATRIX);
78 80
         
79 81
      if( (float)lisaHeight/lisaWidth > (float)height/width )
80 82
        {
81 83
        int w = (height*lisaWidth)/lisaHeight;
82 84
        float factor = (float)height/lisaHeight;
83 85

  
84
        mQueues.move( new Static3D((width-w)/2,0,0) );
85
        mQueues.scale(factor);
86
        mEffects.move( new Static3D((width-w)/2,0,0) );
87
        mEffects.scale(factor);
86 88
        }
87 89
      else
88 90
        {
89 91
        int h = (width*lisaHeight)/lisaWidth;
90 92
        float factor = (float)width/lisaWidth;
91 93

  
92
        mQueues.move( new Static3D(0,(height-h)/2,0) );
93
        mQueues.scale(factor);
94
        mEffects.move( new Static3D(0,(height-h)/2,0) );
95
        mEffects.scale(factor);
94 96
        }
95 97
      
96
      Distorted.onSurfaceChanged(width, height); 
98
      mScreen.resize(width, height);
97 99
      }
98 100

  
99 101
///////////////////////////////////////////////////////////////////////////////////////////////////
......
133 135
      text.setTexture(bitmap2);
134 136
      DistortedEffectQueues textQueues = new DistortedEffectQueues();
135 137

  
136
      mQueues.abortAllEffects();
138
      mEffects.abortAllEffects();
137 139

  
138
      mRoot = new DistortedObjectTree(lisa,mQueues,new GridFlat(1,1));
140
      mRoot = new DistortedObjectTree(lisa, mEffects,new GridFlat(1,1));
139 141
      mRoot.attach(text,textQueues,new GridCubes(20,5,false));
140 142

  
141 143
      float factor = lisaWidth/(2.0f*textWidth);
......
160 162
      chromaDyn.add(new Static1D(0.0f));
161 163
      chromaDyn.add(new Static1D(1.0f));
162 164

  
163
      mQueues.chroma(chromaDyn, new Static3D(0,0,1) );
165
      mEffects.chroma(chromaDyn, new Static3D(0,0,1) );
164 166
      
165 167
      try
166 168
        {
src/main/java/org/distorted/examples/flag/FlagRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedFramebuffer;
29 30
import org.distorted.library.GridCubes;
30 31
import org.distorted.library.DistortedEffectQueues;
31 32
import org.distorted.library.DistortedTexture;
......
48 49
class FlagRenderer implements GLSurfaceView.Renderer
49 50
{
50 51
    private GLSurfaceView mView;
51
    private DistortedEffectQueues mQueues;
52
    private DistortedEffectQueues mEffects;
52 53
    private DistortedTexture mTexture;
54
    private DistortedFramebuffer mScreen;
53 55
    private GridCubes mGrid;
54
    private int mObjWidth, mObjHeight;
55 56
    private DynamicQuat mQuatInt1, mQuatInt2;
56 57
    private Dynamic5D mWaveDyn;
57 58
    private Static5D mWaveSta1, mWaveSta2;
59
    private int mObjWidth, mObjHeight;
58 60

  
59 61
    Static4D mQuat1, mQuat2;
60 62
    int mScreenMin;
......
65 67
      {
66 68
      mView = v;
67 69

  
68
      mQueues  = new DistortedEffectQueues();
70
      mEffects = new DistortedEffectQueues();
69 71
      mGrid    = new GridCubes(50,30,false);
70 72
      mTexture = new DistortedTexture(500,300);
71 73

  
......
92 94
      Static3D waveCenter = new Static3D(mObjWidth, mObjHeight/2, 0);  // middle of the right edge
93 95
      Static4D waveRegion = new Static4D(0,0,mObjWidth,mObjWidth);
94 96

  
95
      mQueues.wave(mWaveDyn, waveCenter, waveRegion);
97
      mEffects.wave(mWaveDyn, waveCenter, waveRegion);
98

  
99
      mScreen = new DistortedFramebuffer(0);
96 100
      }
97 101

  
98 102
///////////////////////////////////////////////////////////////////////////////////////////////////
......
139 143
    public void onDrawFrame(GL10 glUnused) 
140 144
      {
141 145
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
142
      mQueues.draw(System.currentTimeMillis(), mTexture, mGrid);
146
      mEffects.draw(System.currentTimeMillis(), mTexture, mGrid, mScreen);
143 147
      }
144 148

  
145 149
///////////////////////////////////////////////////////////////////////////////////////////////////
......
148 152
      {
149 153
      mScreenMin = width<height ? width:height;
150 154
    	
151
      mQueues.abortEffects(EffectTypes.MATRIX);
155
      mEffects.abortEffects(EffectTypes.MATRIX);
152 156
      float factor;
153 157

  
154 158
      if( width*mObjHeight > height*mObjWidth ) // screen is more 'horizontal' than the Object
......
160 164
        factor = (0.8f*width)/mObjWidth;
161 165
        }
162 166

  
163
      mQueues.move( new Static3D( (width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , 0) );
164
      mQueues.scale(factor);
167
      mEffects.move( new Static3D( (width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , 0) );
168
      mEffects.scale(factor);
165 169
      Static3D center = new Static3D(mObjWidth/2,mObjHeight/2, 0);
166 170

  
167
      mQueues.quaternion(mQuatInt1, center);
168
      mQueues.quaternion(mQuatInt2, center);
171
      mEffects.quaternion(mQuatInt1, center);
172
      mEffects.quaternion(mQuatInt2, center);
169 173
       
170
      Distorted.onSurfaceChanged(width, height); 
174
      mScreen.resize(width, height);
171 175
      }
172 176

  
173 177
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/girl/GirlRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedFramebuffer;
31 32
import org.distorted.library.GridFlat;
32 33
import org.distorted.library.DistortedTexture;
33 34
import org.distorted.library.DistortedEffectQueues;
......
49 50
{
50 51
    private GLSurfaceView mView;
51 52
    private DistortedTexture mTexture;
52
    private DistortedEffectQueues mQueues;
53
    private DistortedEffectQueues mEffects;
54
    private DistortedFramebuffer mScreen;
53 55
    private GridFlat mGrid;
54 56
    private Static3D v0,v1,v2,v3;
55 57
    private Static1D dBegin, dMiddle, dEnd, s0;
......
109 111
      diHips.add(dMiddle);
110 112
      diHips.add(dBegin);
111 113

  
112
      mQueues = new DistortedEffectQueues();
114
      mEffects = new DistortedEffectQueues();
113 115

  
114
      mQueues.sink( diSink, pLeft, sinkRegion );
115
      mQueues.sink( diSink, pRight,sinkRegion );
116
      mEffects.sink( diSink, pLeft, sinkRegion );
117
      mEffects.sink( diSink, pRight,sinkRegion );
116 118

  
117
      mQueues.distort(diL, pLeft , Region);
118
      mQueues.distort(diR, pRight, Region);
119
      mEffects.distort(diL, pLeft , Region);
120
      mEffects.distort(diR, pRight, Region);
119 121

  
120
      mQueues.swirl(diHips, pHips, HipsRegion );
122
      mEffects.swirl(diHips, pHips, HipsRegion );
123

  
124
      mScreen = new DistortedFramebuffer(0);
121 125
      }
122 126

  
123 127
///////////////////////////////////////////////////////////////////////////////////////////////////
......
150 154
   public void onDrawFrame(GL10 glUnused) 
151 155
      {
152 156
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
153
      mQueues.draw(System.currentTimeMillis(),mTexture,mGrid);
157
      mEffects.draw(System.currentTimeMillis(),mTexture,mGrid,mScreen);
154 158
      }
155 159

  
156 160
///////////////////////////////////////////////////////////////////////////////////////////////////
157 161
    
158 162
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
159 163
      { 
160
      mQueues.abortEffects(EffectTypes.MATRIX);
164
      mEffects.abortEffects(EffectTypes.MATRIX);
161 165
      
162 166
      if( (float)bmpHeight/bmpWidth > (float)height/width )
163 167
        {
164 168
        int w = (height*bmpWidth)/bmpHeight;
165 169
        float factor = (float)height/bmpHeight;
166 170

  
167
        mQueues.move( new Static3D((width-w)/2,0,0) );
168
        mQueues.scale(factor);
171
        mEffects.move( new Static3D((width-w)/2,0,0) );
172
        mEffects.scale(factor);
169 173
        }
170 174
      else
171 175
        {
172 176
        int h = (width*bmpHeight)/bmpWidth;
173 177
        float factor = (float)width/bmpWidth;
174 178

  
175
        mQueues.move( new Static3D(0,(height-h)/2,0) );
176
        mQueues.scale(factor);
179
        mEffects.move( new Static3D(0,(height-h)/2,0) );
180
        mEffects.scale(factor);
177 181
        }
178 182
      
179
      Distorted.onSurfaceChanged(width, height); 
183
      mScreen.resize(width, height);
180 184
      }
181 185

  
182 186
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/listener/ListenerRenderer.java
29 29
import org.distorted.examples.R;
30 30

  
31 31
import org.distorted.library.Distorted;
32
import org.distorted.library.DistortedFramebuffer;
32 33
import org.distorted.library.GridFlat;
33 34
import org.distorted.library.DistortedTexture;
34 35
import org.distorted.library.DistortedEffectQueues;
......
53 54

  
54 55
   private GLSurfaceView mView;
55 56
   private DistortedTexture mTexture;
56
   private DistortedEffectQueues mQueues;
57
   private DistortedEffectQueues mEffects;
58
   private DistortedFramebuffer mScreen;
57 59
   private GridFlat mGrid;
58 60
   private int bmpHeight, bmpWidth;
59 61
   private Random mRnd;
......
64 66
      {
65 67
      Distorted.setMaxVertex(NUM_BUBBLES);   
66 68
      mView = v;
67
      mQueues = new DistortedEffectQueues();
68
      mQueues.registerForMessages(this);
69
      mEffects = new DistortedEffectQueues();
70
      mEffects.registerForMessages(this);
71
      mScreen = new DistortedFramebuffer(0);
69 72
      mRnd = new Random(0);
70 73
      }
71 74

  
......
83 86
      dDistort.add(new Static3D(0,0,     0));
84 87
      dDistort.add(new Static3D(0,0,height));
85 88

  
86
      return mQueues.distort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,radius,radius));
89
      return mEffects.distort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,radius,radius));
87 90
      }
88 91
   
89 92
///////////////////////////////////////////////////////////////////////////////////////////////////
......
103 106
    public void onDrawFrame(GL10 glUnused) 
104 107
      {
105 108
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
106
      mQueues.draw(System.currentTimeMillis(), mTexture,mGrid);
109
      mEffects.draw(System.currentTimeMillis(), mTexture,mGrid,mScreen);
107 110
      }
108 111

  
109 112
///////////////////////////////////////////////////////////////////////////////////////////////////
110 113
    
111 114
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
112 115
      { 
113
      mQueues.abortEffects(EffectTypes.MATRIX);
116
      mEffects.abortEffects(EffectTypes.MATRIX);
114 117
         
115 118
      if( (float)bmpHeight/bmpWidth > (float)height/width )
116 119
        {
117 120
        int w = (height*bmpWidth)/bmpHeight;
118 121
        float factor = (float)height/bmpHeight;
119 122

  
120
        mQueues.move( new Static3D((width-w)/2,0,0) );
121
        mQueues.scale(factor);
123
        mEffects.move( new Static3D((width-w)/2,0,0) );
124
        mEffects.scale(factor);
122 125
        }
123 126
      else
124 127
        {
125 128
        int h = (width*bmpHeight)/bmpWidth;
126 129
        float factor = (float)width/bmpWidth;
127 130

  
128
        mQueues.move( new Static3D(0,(height-h)/2,0) );
129
        mQueues.scale(factor);
131
        mEffects.move( new Static3D(0,(height-h)/2,0) );
132
        mEffects.scale(factor);
130 133
        }
131 134
      
132
      Distorted.onSurfaceChanged(width, height); 
135
      mScreen.resize(width, height);
133 136
      }
134 137

  
135 138
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
24 24

  
25 25
import org.distorted.library.Distorted;
26 26
import org.distorted.library.DistortedEffectQueues;
27
import org.distorted.library.DistortedFramebuffer;
27 28
import org.distorted.library.GridObject;
28 29
import org.distorted.library.DistortedTexture;
29
import org.distorted.library.EffectTypes;
30 30

  
31 31
import javax.microedition.khronos.egl.EGLConfig;
32 32
import javax.microedition.khronos.opengles.GL10;
......
37 37
{
38 38
    private GLSurfaceView mView;
39 39
    private DistortedTexture mTexture;
40
    private DistortedEffectQueues mQueues;
40
    private DistortedEffectQueues mEffects;
41
    private DistortedFramebuffer mScreen;
41 42
    private GridObject mGrid;
42 43

  
43 44
    private int mWidth, mHeight;
......
50 51

  
51 52
      Matrix3DActivity act = (Matrix3DActivity)v.getContext();
52 53

  
53
      mQueues = act.getQueues();
54
      mEffects = act.getQueues();
54 55
      mTexture= act.getTexture();
55 56
      mGrid   = act.getGrid();
57
      mScreen = new DistortedFramebuffer(0);
56 58
      }
57 59

  
58 60
///////////////////////////////////////////////////////////////////////////////////////////////////
......
60 62
    public void onDrawFrame(GL10 glUnused)
61 63
      {
62 64
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
63
      mQueues.draw(System.currentTimeMillis(),mTexture,mGrid);
65
      mEffects.draw(System.currentTimeMillis(),mTexture,mGrid,mScreen);
64 66
      }
65 67

  
66 68
///////////////////////////////////////////////////////////////////////////////////////////////////
......
84 86
      mWidth = width;
85 87
      mHeight= height;
86 88

  
87
      Distorted.onSurfaceChanged(width, height);
89
      mScreen.resize(width, height);
88 90
      }
89 91

  
90 92
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29
import org.distorted.library.Distorted;
30
import org.distorted.library.DistortedFramebuffer;
30 31
import org.distorted.library.DistortedTexture;
31 32
import org.distorted.library.DistortedEffectQueues;
32 33
import org.distorted.library.GridFlat;
......
46 47
{
47 48
    private GLSurfaceView mView;
48 49
    private DistortedTexture mTexture;
49
    private DistortedEffectQueues mQueues;
50
    private DistortedEffectQueues mEffects;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff