Revision 06cd94ba
Added by Leszek Koltunski almost 7 years ago
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
Further progress with Apps: 25 (out of 31) compile now.