Revision f94110ca
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/mirror/MirrorRenderer.java | ||
|---|---|---|
| 27 | 27 |
import org.distorted.library.effect.FragmentEffectBrightness; |
| 28 | 28 |
import org.distorted.library.effect.MatrixEffectMove; |
| 29 | 29 |
import org.distorted.library.effect.MatrixEffectScale; |
| 30 |
import org.distorted.library.effect.VertexEffectScale; |
|
| 30 | 31 |
import org.distorted.library.main.DistortedLibrary; |
| 31 | 32 |
import org.distorted.library.main.DistortedEffects; |
| 32 | 33 |
import org.distorted.library.main.DistortedFramebuffer; |
| ... | ... | |
| 62 | 63 |
private DistortedScreen mScreen; |
| 63 | 64 |
private MeshQuad mQuad1, mQuad2, mQuadMirror, mQuadHead; |
| 64 | 65 |
private Static3D mHeadPosition, mScaleMirror, mMoveOffscreen2, mScaleHead; |
| 66 |
private Static3D mScaleOffscreen1, mScaleOffscreen2; |
|
| 65 | 67 |
|
| 66 | 68 |
private int mX; |
| 67 | 69 |
private int mMirrorW, mMirrorH, mHeadW, mHeadH; |
| ... | ... | |
| 91 | 93 |
mScaleMirror = new Static3D(1,1,1); |
| 92 | 94 |
mMoveOffscreen2 = new Static3D(0,0,0); |
| 93 | 95 |
mScaleHead = new Static3D(1,1,1); |
| 96 |
mScaleOffscreen1 = new Static3D(1,1,1); |
|
| 97 |
mScaleOffscreen2 = new Static3D(1,1,1); |
|
| 94 | 98 |
|
| 95 |
mEffectsMirror.apply( new MatrixEffectScale(mScaleMirror)); |
|
| 99 |
mEffectsMirror.apply( new VertexEffectScale(mScaleMirror)); |
|
| 100 |
mEffectsScreen.apply( new VertexEffectScale(mScaleOffscreen1) ); |
|
| 101 |
mEffectsOffscreen1.apply( new VertexEffectScale(mScaleOffscreen1) ); |
|
| 96 | 102 |
mEffectsOffscreen1.apply( new MatrixEffectScale( new Static3D(MIRROR_SCALE,MIRROR_SCALE,MIRROR_SCALE))); |
| 103 |
mEffectsOffscreen2.apply( new VertexEffectScale(mScaleOffscreen2) ); |
|
| 97 | 104 |
mEffectsOffscreen2.apply( new MatrixEffectMove(mMoveOffscreen2) ); |
| 98 |
mEffectsHead.apply( new MatrixEffectScale(mScaleHead) );
|
|
| 105 |
mEffectsHead.apply( new VertexEffectScale(mScaleHead) );
|
|
| 99 | 106 |
mEffectsHead.apply( new MatrixEffectMove(mHeadPosition) ); |
| 100 | 107 |
mEffectsOffscreen1.apply(new FragmentEffectBrightness(new Static1D(MIRROR_BRIGHTNESS))); |
| 101 | 108 |
} |
| ... | ... | |
| 149 | 156 |
int offscreen2W = (int)(MIRROR_SCALE*mScreenW); |
| 150 | 157 |
int offscreen2H = (int)(MIRROR_SCALE*mScreenH); |
| 151 | 158 |
|
| 152 |
mQuad1.setStretch(offscreen1W, offscreen1H, 0);
|
|
| 153 |
mQuad2.setStretch(offscreen2W, offscreen2H, 0);
|
|
| 159 |
mScaleOffscreen1.set(offscreen1W, offscreen1H, 0);
|
|
| 160 |
mScaleOffscreen2.set(offscreen2W, offscreen2H, 0);
|
|
| 154 | 161 |
|
| 155 | 162 |
mOffScreen1 = new DistortedFramebuffer( offscreen1W, offscreen1H, 1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL ); |
| 156 | 163 |
mOffScreen2 = new DistortedFramebuffer( offscreen2W, offscreen2H, 1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL ); |
| 157 | 164 |
|
| 158 |
float headScale = HEAD_SCALE *mScreenH/ mHeadH; |
|
| 159 |
mScaleHead.set(headScale,headScale,headScale); |
|
| 160 |
|
|
| 161 |
float scaleW = (float)mScreenW/mMirrorW; |
|
| 162 |
float scaleH = (float)mScreenH/mMirrorH; |
|
| 163 |
|
|
| 164 |
mScaleMirror.set( scaleW, scaleH, 1.0f); |
|
| 165 |
float headScale = HEAD_SCALE *mScreenH; |
|
| 166 |
mScaleHead.set(headScale*mHeadW/mHeadH,headScale,0); |
|
| 167 |
mScaleMirror.set( mScreenW, mScreenH, 0); |
|
| 165 | 168 |
|
| 166 | 169 |
mMoveOffscreen2.set( (MIRROR_MOVE_H-0.5f+0.5f*MIRROR_SCALE)*mScreenW, (MIRROR_MOVE_V-0.5f+0.5f*MIRROR_SCALE)*mScreenH*mMirrorW/mMirrorH, 0); |
| 167 | 170 |
mHeadPosition.set1( (0.5f*HEAD_SCALE - 0.5f + MIRROR_MARGIN*mMirrorW/mMirrorH)*mScreenH ); |
| ... | ... | |
| 207 | 210 |
mHeadW = bitmapH.getWidth(); |
| 208 | 211 |
mHeadH = bitmapH.getHeight(); |
| 209 | 212 |
|
| 210 |
mQuadMirror.setStretch(mMirrorW,mMirrorH,0); |
|
| 211 |
mQuadHead.setStretch(mHeadW, mHeadH,0); |
|
| 212 |
|
|
| 213 | 213 |
if( mTextureMirror==null ) mTextureMirror = new DistortedTexture(); |
| 214 | 214 |
if( mTextureHead ==null ) mTextureHead = new DistortedTexture(); |
| 215 | 215 |
|
| 216 | 216 |
mTextureMirror.setTexture(bitmapM); |
| 217 | 217 |
mTextureHead.setTexture(bitmapH); |
| 218 | 218 |
|
| 219 |
VertexEffectScale.enable(); |
|
| 219 | 220 |
FragmentEffectBrightness.enable(); |
| 220 | 221 |
|
| 221 | 222 |
try |
Also available in: Unified diff
Convert Mirror to stretchless API.