Revision e8bf2663
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/save/SaveRenderer.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.examples.R; |
| 32 | 32 |
|
| 33 | 33 |
import org.distorted.library.effect.MatrixEffectScale; |
| 34 |
import org.distorted.library.effect.VertexEffectScale; |
|
| 34 | 35 |
import org.distorted.library.effect.VertexEffectSink; |
| 35 | 36 |
import org.distorted.library.main.DistortedLibrary; |
| 36 | 37 |
import org.distorted.library.main.DistortedEffects; |
| ... | ... | |
| 60 | 61 |
private MeshRectangles mMesh; |
| 61 | 62 |
private DistortedScreen mScreen; |
| 62 | 63 |
private Static1D s0; |
| 63 |
private Static3D mScaleFactor, mScaleMain; |
|
| 64 |
private Static3D mScaleFactor, mScaleMain, mScaleVertex;
|
|
| 64 | 65 |
|
| 65 | 66 |
private float mScale; |
| 66 | 67 |
private int bmpHeight, bmpWidth; |
| ... | ... | |
| 89 | 90 |
|
| 90 | 91 |
mScale = 1.0f; |
| 91 | 92 |
mScaleFactor = new Static3D(mScale,mScale,1.0f); |
| 92 |
mScaleMain = new Static3D(1,1,1); |
|
| 93 |
mScaleMain = new Static3D(1,1,1); |
|
| 94 |
mScaleVertex = new Static3D(1,1,1); |
|
| 93 | 95 |
|
| 94 | 96 |
mEffects = new DistortedEffects(); |
| 97 |
mEffects.apply( new VertexEffectScale(mScaleVertex)); |
|
| 95 | 98 |
mEffects.apply( new VertexEffectSink(diSink, pLeft , sinkRegion) ); |
| 96 | 99 |
mEffects.apply( new VertexEffectSink(diSink, pRight, sinkRegion) ); |
| 97 | 100 |
mEffects.apply( new MatrixEffectScale(mScaleMain)); |
| ... | ... | |
| 190 | 193 |
|
| 191 | 194 |
private void applyMatrixEffects(int width, int height) |
| 192 | 195 |
{
|
| 193 |
float horiRatio = (float)width / mMesh.getStretchX();
|
|
| 194 |
float vertRatio = (float)height/ mMesh.getStretchY();
|
|
| 195 |
float factor = horiRatio > vertRatio ? vertRatio : horiRatio;
|
|
| 196 |
float horiRatio = (float)width / mScaleVertex.get0();
|
|
| 197 |
float vertRatio = (float)height/ mScaleVertex.get1();
|
|
| 198 |
float factor = Math.min(horiRatio, vertRatio);
|
|
| 196 | 199 |
mScaleMain.set(factor,factor,factor); |
| 197 | 200 |
} |
| 198 | 201 |
|
| ... | ... | |
| 223 | 226 |
{
|
| 224 | 227 |
is.close(); |
| 225 | 228 |
} |
| 226 |
catch(IOException e) { }
|
|
| 229 |
catch(IOException ignored) { }
|
|
| 227 | 230 |
} |
| 228 | 231 |
|
| 229 | 232 |
bmpHeight = bitmap.getHeight(); |
| 230 | 233 |
bmpWidth = bitmap.getWidth(); |
| 231 | 234 |
|
| 232 |
if( mMesh==null ) |
|
| 233 |
{
|
|
| 234 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 235 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 236 |
} |
|
| 235 |
mScaleVertex.set(bmpWidth,bmpHeight,0); |
|
| 236 |
|
|
| 237 |
if( mMesh ==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 237 | 238 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 238 | 239 |
mTexture.setTexture(bitmap); |
| 239 | 240 |
|
| ... | ... | |
| 245 | 246 |
mScreen.detachAll(); |
| 246 | 247 |
mScreen.attach(mTexture,mEffects,mMesh); |
| 247 | 248 |
|
| 249 |
VertexEffectScale.enable(); |
|
| 248 | 250 |
VertexEffectSink.enable(); |
| 249 | 251 |
|
| 250 | 252 |
try |
Also available in: Unified diff
Convert Save to stretchless API.