Project

General

Profile

« Previous | Next » 

Revision 06cd94ba

Added by Leszek Koltunski almost 7 years ago

Further progress with Apps: 25 (out of 31) compile now.

View differences:

src/main/java/org/distorted/examples/save/SaveRenderer.java
30 30

  
31 31
import org.distorted.examples.R;
32 32

  
33
import org.distorted.library.effect.Effect;
33
import org.distorted.library.effect.EffectName;
34
import org.distorted.library.effect.MatrixEffectMove;
35
import org.distorted.library.effect.MatrixEffectScale;
34 36
import org.distorted.library.effect.VertexEffectSink;
35 37
import org.distorted.library.main.Distorted;
36 38
import org.distorted.library.main.DistortedEffects;
......
39 41
import org.distorted.library.main.MeshFlat;
40 42
import org.distorted.library.main.DistortedFramebuffer;
41 43
import org.distorted.library.type.Dynamic1D;
42
import org.distorted.library.type.Dynamic3D;
43 44
import org.distorted.library.type.Static1D;
44 45
import org.distorted.library.type.Static3D;
45 46
import org.distorted.library.type.Static4D;
......
61 62
  private MeshFlat mMesh;
62 63
  private DistortedScreen mScreen;
63 64
  private Static1D s0;
64
  private Dynamic3D mScaleDyn;
65
  private Static3D mScaleFactor;
65
  private Static3D mScaleFactor, mScaleMain, mMove;
66 66

  
67 67
  private float mScale;
68 68
  private int bmpHeight, bmpWidth;
......
90 90
    diSink.add(s0);
91 91

  
92 92
    mScale = 1.0f;
93
    mScaleDyn = new Dynamic3D();
94 93
    mScaleFactor = new Static3D(mScale,mScale,1.0f);
95
    mScaleDyn.add(mScaleFactor);
94
    mMove = new Static3D(0,0,0);
95
    mScaleMain = new Static3D(1,1,1);
96 96

  
97 97
    mEffects = new DistortedEffects();
98
    mEffects.sink( diSink, pLeft , sinkRegion);
99
    mEffects.sink( diSink, pRight, sinkRegion);
98
    mEffects.apply( new VertexEffectSink(diSink, pLeft , sinkRegion) );
99
    mEffects.apply( new VertexEffectSink(diSink, pRight, sinkRegion) );
100
    mEffects.apply( new MatrixEffectMove(mMove));
101
    mEffects.apply( new MatrixEffectScale(mScaleMain));
102
    mEffects.apply( new MatrixEffectScale(mScaleFactor));
100 103

  
101 104
    mScreen = new DistortedScreen(mView);
102 105
    }
......
155 158

  
156 159
    if( isSaving )  // render to an offscreen buffer and read pixels
157 160
      {
158
      mEffects.abortByType(Effect.MATRIX);
159
      mEffects.scale(mScaleFactor);
161
      mMove.set(0,0,0);
162
      mScaleMain.set(1,1,1);
160 163
      mOffscreen.render(time);
161 164
      applyMatrixEffects(scrWidth,scrHeight);
162 165

  
......
188 191

  
189 192
  private void applyMatrixEffects(int width, int height)
190 193
    {
191
    mEffects.abortByType(Effect.MATRIX);
192

  
193 194
    if( (float)bmpHeight/bmpWidth > (float)height/width )
194 195
      {
195 196
      int w = (height*bmpWidth)/bmpHeight;
196 197
      float factor = (float)height/bmpHeight;
197 198

  
198
      mEffects.move( new Static3D((width-w)/2,0,0) );
199
      mEffects.scale(factor);
199
      mMove.set((width-w)/2,0,0);
200
      mScaleMain.set(factor,factor,factor);
200 201
      }
201 202
    else
202 203
      {
203 204
      int h = (width*bmpHeight)/bmpWidth;
204 205
      float factor = (float)width/bmpWidth;
205 206

  
206
      mEffects.move( new Static3D(0,(height-h)/2,0) );
207
      mEffects.scale(factor);
207
      mMove.set(0,(height-h)/2,0);
208
      mScaleMain.set(factor,factor,factor);
208 209
      }
209

  
210
    mEffects.scale(mScaleDyn);
211 210
    }
212 211

  
213 212
///////////////////////////////////////////////////////////////////////////////////////////////////
......
254 253
    mScreen.detachAll();
255 254
    mScreen.attach(mTexture,mEffects,mMesh);
256 255

  
257
    DistortedEffects.enableEffect(org.distorted.library.effect.VertexEffectSink.class);
256
    DistortedEffects.enableEffect(EffectName.SINK);
258 257

  
259 258
    try
260 259
      {

Also available in: Unified diff