Revision 698ad0a8
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java | ||
|---|---|---|
| 68 | 68 |
|
| 69 | 69 |
mView = view; |
| 70 | 70 |
mManager = new AroundTheWorldEffectsManager(); |
| 71 |
mEffects = new DistortedEffects(1);
|
|
| 71 |
mEffects = new DistortedEffects(); |
|
| 72 | 72 |
mEffects.apply(new MatrixEffectScale(mScale)); |
| 73 | 73 |
mEffects.apply(new MatrixEffectMove(mMove)); |
| 74 | 74 |
|
| ... | ... | |
| 136 | 136 |
mObjWidth = bitmap.getWidth(); |
| 137 | 137 |
mObjHeight= bitmap.getHeight(); |
| 138 | 138 |
|
| 139 |
mEffects.setStretch(mObjWidth,mObjHeight,0); |
|
| 140 |
|
|
| 141 | 139 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 142 | 140 |
mTexture.setTexture(bitmap); |
| 143 | 141 |
|
| 144 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*mObjHeight/mObjWidth); |
|
| 142 |
if( mMesh==null ) |
|
| 143 |
{
|
|
| 144 |
mMesh = new MeshRectangles(30,30*mObjHeight/mObjWidth); |
|
| 145 |
mMesh.setStretch(mObjWidth,mObjHeight,0); |
|
| 146 |
} |
|
| 145 | 147 |
|
| 146 | 148 |
mScreen.detachAll(); |
| 147 | 149 |
mScreen.attach(mTexture, mEffects, mMesh); |
| src/main/java/org/distorted/examples/bean/BeanRenderer.java | ||
|---|---|---|
| 88 | 88 |
mMove = new Static3D(0,0,0); |
| 89 | 89 |
mScale= new Static3D(1,1,1); |
| 90 | 90 |
|
| 91 |
mEffects = new DistortedEffects(1);
|
|
| 91 |
mEffects = new DistortedEffects(); |
|
| 92 | 92 |
mEffects.apply( new VertexEffectDistort(dynLeft , pointLeft , regionLeft) ); |
| 93 | 93 |
mEffects.apply( new VertexEffectDistort(dynRight, pointRight, regionRight)); |
| 94 | 94 |
mEffects.apply( new MatrixEffectScale(mScale) ); |
| ... | ... | |
| 149 | 149 |
mObjHeight = bitmap.getHeight(); |
| 150 | 150 |
mObjWidth = bitmap.getWidth(); |
| 151 | 151 |
|
| 152 |
mEffects.setStretch(mObjWidth,mObjHeight,0); |
|
| 153 |
|
|
| 154 | 152 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 155 | 153 |
mTexture.setTexture(bitmap); |
| 156 |
if( mMesh==null ) mMesh = new MeshRectangles(25,25*mObjHeight/mObjWidth); |
|
| 154 |
if( mMesh==null ) |
|
| 155 |
{
|
|
| 156 |
mMesh = new MeshRectangles(25,25*mObjHeight/mObjWidth); |
|
| 157 |
mMesh.setStretch(mObjWidth,mObjHeight,0); |
|
| 158 |
} |
|
| 157 | 159 |
|
| 158 | 160 |
mScreen.detachAll(); |
| 159 | 161 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/blur/BlurRenderer.java | ||
|---|---|---|
| 55 | 55 |
private DistortedEffects mEffects, mBufferEffects; |
| 56 | 56 |
private DistortedScreen mScreen; |
| 57 | 57 |
private DistortedFramebuffer mBuffer; |
| 58 |
private MeshRectangles mMesh; |
|
| 58 |
private MeshRectangles mMesh, mMeshBuffer;
|
|
| 59 | 59 |
private Static1D mRadiusSta; |
| 60 | 60 |
private int mObjHeight, mObjWidth; |
| 61 | 61 |
private Static3D mMove, mScale, mBufferMove, mBufferScale; |
| ... | ... | |
| 64 | 64 |
|
| 65 | 65 |
BlurRenderer(GLSurfaceView v) |
| 66 | 66 |
{
|
| 67 |
mView = v; |
|
| 68 |
mMesh = new MeshRectangles(1,1); |
|
| 69 |
mScreen = new DistortedScreen(); |
|
| 70 |
mBuffer = new DistortedFramebuffer(SIZE,SIZE,1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL); |
|
| 67 |
mView = v; |
|
| 68 |
mMesh = new MeshRectangles(1,1); |
|
| 69 |
mMeshBuffer = new MeshRectangles(1,1); |
|
| 70 |
mScreen = new DistortedScreen(); |
|
| 71 |
mBuffer = new DistortedFramebuffer(SIZE,SIZE,1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL); |
|
| 71 | 72 |
|
| 72 | 73 |
mRadiusSta = new Static1D(5); |
| 73 | 74 |
Dynamic1D radiusDyn = new Dynamic1D(); |
| ... | ... | |
| 78 | 79 |
mBufferMove = new Static3D(0,0,0); |
| 79 | 80 |
mBufferScale= new Static3D(1,1,1); |
| 80 | 81 |
|
| 81 |
mBufferEffects = new DistortedEffects(1);
|
|
| 82 |
mBufferEffects = new DistortedEffects(); |
|
| 82 | 83 |
mBufferEffects.apply(new MatrixEffectScale(mBufferScale)); |
| 83 | 84 |
mBufferEffects.apply(new MatrixEffectMove(mBufferMove)); |
| 84 | 85 |
|
| 85 |
mEffects = new DistortedEffects(1);
|
|
| 86 |
mEffects = new DistortedEffects(); |
|
| 86 | 87 |
mEffects.apply( new PostprocessEffectBlur(radiusDyn) ); |
| 87 | 88 |
mEffects.apply(new MatrixEffectScale(mScale)); |
| 88 | 89 |
mEffects.apply(new MatrixEffectMove(mMove)); |
| ... | ... | |
| 155 | 156 |
mObjHeight = bitmap.getHeight(); |
| 156 | 157 |
mObjWidth = bitmap.getWidth(); |
| 157 | 158 |
|
| 158 |
mEffects.setStretch(mObjWidth,mObjHeight,0);
|
|
| 159 |
mBufferEffects.setStretch(SIZE,SIZE,0);
|
|
| 159 |
mMesh.setStretch(mObjWidth,mObjHeight,0);
|
|
| 160 |
mMeshBuffer.setStretch(SIZE,SIZE,0);
|
|
| 160 | 161 |
|
| 161 | 162 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 162 | 163 |
mTexture.setTexture(bitmap); |
| 163 | 164 |
|
| 164 | 165 |
mScreen.detachAll(); |
| 165 |
mScreen.attach(mBuffer, mBufferEffects, mMesh); |
|
| 166 |
mScreen.attach(mBuffer, mBufferEffects, mMeshBuffer);
|
|
| 166 | 167 |
mBuffer.attach(new DistortedNode(mTexture,mEffects,mMesh)); |
| 167 | 168 |
|
| 168 | 169 |
PostprocessEffectBlur.enable(); |
| src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java | ||
|---|---|---|
| 92 | 92 |
diRotate.add(new Static1D( 0)); |
| 93 | 93 |
diRotate.add(new Static1D(360)); |
| 94 | 94 |
|
| 95 |
mEffects = new DistortedEffects(1);
|
|
| 95 |
mEffects = new DistortedEffects(); |
|
| 96 | 96 |
|
| 97 | 97 |
mEffects.apply( new MatrixEffectRotate( diRotate, new Static3D(0,0,1), mRotate) ); |
| 98 | 98 |
mEffects.apply( new MatrixEffectScale(diScale)); |
| ... | ... | |
| 142 | 142 |
mObjWidth = bitmap.getWidth(); |
| 143 | 143 |
mRotate.set(mObjWidth/2,mObjHeight/2,0); |
| 144 | 144 |
|
| 145 |
mEffects.setStretch(mObjWidth,mObjHeight,0);
|
|
| 145 |
mMesh.setStretch(mObjWidth,mObjHeight,0);
|
|
| 146 | 146 |
|
| 147 | 147 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 148 | 148 |
mTexture.setTexture(bitmap); |
| src/main/java/org/distorted/examples/check/CheckRenderer.java | ||
|---|---|---|
| 92 | 92 |
mScale = new Static3D(1,1,1); |
| 93 | 93 |
mCenter = new Static3D(0,0,0); |
| 94 | 94 |
|
| 95 |
mEffects = new DistortedEffects(1);
|
|
| 95 |
mEffects = new DistortedEffects(); |
|
| 96 | 96 |
mEffects.apply(new MatrixEffectScale(mScale)); |
| 97 | 97 |
mEffects.apply(new MatrixEffectMove(mMove)); |
| 98 | 98 |
|
| ... | ... | |
| 181 | 181 |
mObjHeight = bitmap.getHeight(); |
| 182 | 182 |
mObjWidth = bitmap.getWidth(); |
| 183 | 183 |
|
| 184 |
mEffects.setStretch(mObjWidth,mObjHeight,0); |
|
| 185 |
|
|
| 186 | 184 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 187 | 185 |
mTexture.setTexture(bitmap); |
| 188 | 186 |
|
| 189 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*mObjHeight/mObjWidth); |
|
| 187 |
if( mMesh==null ) |
|
| 188 |
{
|
|
| 189 |
mMesh = new MeshRectangles(30,30*mObjHeight/mObjWidth); |
|
| 190 |
mMesh.setStretch(mObjWidth,mObjHeight,0); |
|
| 191 |
} |
|
| 190 | 192 |
|
| 191 | 193 |
mScreen.detachAll(); |
| 192 | 194 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/deform/DeformRenderer.java | ||
|---|---|---|
| 81 | 81 |
{
|
| 82 | 82 |
mView = view; |
| 83 | 83 |
|
| 84 |
mEffects = new DistortedEffects(1);
|
|
| 84 |
mEffects = new DistortedEffects(); |
|
| 85 | 85 |
mRegion = new Static4D(0,0,0,0); |
| 86 | 86 |
mMove = new Static3D(0,0,0); |
| 87 | 87 |
mTouchPoint = new Static3D(0,0,0); |
| ... | ... | |
| 192 | 192 |
int h=height/2; |
| 193 | 193 |
|
| 194 | 194 |
if( mMesh!=null ) mMesh.markForDeletion(); |
| 195 |
|
|
| 196 | 195 |
mMesh = new MeshRectangles(50,50*h/w); |
| 196 |
mMesh.setStretch(w,h,0); |
|
| 197 |
|
|
| 197 | 198 |
Bitmap stretchBitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888); |
| 198 | 199 |
stretchCanvas = new Canvas(stretchBitmap); |
| 199 | 200 |
|
| ... | ... | |
| 209 | 210 |
stretchCanvas.drawRect( 0, h*i/NUM_LINES-1, w , h*i/NUM_LINES+1, paint); |
| 210 | 211 |
} |
| 211 | 212 |
|
| 212 |
mEffects.setStretch(w,h,0); |
|
| 213 |
|
|
| 214 | 213 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 215 | 214 |
mTexture.setTexture(stretchBitmap); |
| 216 | 215 |
|
| src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java | ||
|---|---|---|
| 72 | 72 |
Static3D mPoint = new Static3D(305, 220, 0); |
| 73 | 73 |
|
| 74 | 74 |
mEffects = new DistortedEffects[NUM]; |
| 75 |
mEffects[0] = new DistortedEffects(1);
|
|
| 75 |
mEffects[0] = new DistortedEffects(); |
|
| 76 | 76 |
for(int i=1; i<NUM; i++) |
| 77 | 77 |
mEffects[i] = new DistortedEffects(mEffects[0], DistortedLibrary.CLONE_VERTEX| DistortedLibrary.CLONE_FRAGMENT); |
| 78 | 78 |
|
| ... | ... | |
| 174 | 174 |
bmpHeight = bitmap0.getHeight(); |
| 175 | 175 |
bmpWidth = bitmap0.getWidth(); |
| 176 | 176 |
|
| 177 |
mEffects[0].setStretch(bmpWidth,bmpHeight,0); |
|
| 178 |
|
|
| 179 | 177 |
if( mTexture==null ) |
| 180 | 178 |
{
|
| 181 | 179 |
mTexture = new DistortedTexture[NUM]; |
| ... | ... | |
| 188 | 186 |
mTexture[1].setTexture(bitmap1); |
| 189 | 187 |
mTexture[2].setTexture(bitmap2); |
| 190 | 188 |
|
| 191 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 189 |
if( mMesh==null ) |
|
| 190 |
{
|
|
| 191 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 192 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 193 |
} |
|
| 192 | 194 |
|
| 193 | 195 |
mScreen.detachAll(); |
| 194 | 196 |
for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture[i], mEffects[i], mMesh); |
| src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java | ||
|---|---|---|
| 83 | 83 |
|
| 84 | 84 |
mEffects = new DistortedEffects[NUM]; |
| 85 | 85 |
|
| 86 |
for(int i=0; i<NUM; i++) mEffects[i] = new DistortedEffects(1);
|
|
| 86 |
for(int i=0; i<NUM; i++) mEffects[i] = new DistortedEffects(); |
|
| 87 | 87 |
|
| 88 | 88 |
Dynamic1D sink = new Dynamic1D(2000,0.0f); |
| 89 | 89 |
sink.add(new Static1D( 1)); |
| ... | ... | |
| 173 | 173 |
bmpHeight = bitmap.getHeight(); |
| 174 | 174 |
bmpWidth = bitmap.getWidth(); |
| 175 | 175 |
|
| 176 |
for(int i=0; i<NUM; i++) |
|
| 177 |
{
|
|
| 178 |
mEffects[i].setStretch(bmpWidth, bmpHeight, 0); |
|
| 179 |
} |
|
| 176 |
if( mMesh==null ) |
|
| 177 |
{
|
|
| 178 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 179 |
mMesh.setStretch(bmpWidth, bmpHeight, 0); |
|
| 180 |
} |
|
| 180 | 181 |
|
| 181 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 182 | 182 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 183 | 183 |
mTexture.setTexture(bitmap); |
| 184 | 184 |
|
| src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java | ||
|---|---|---|
| 62 | 62 |
mView = v; |
| 63 | 63 |
mMesh = new MeshRectangles(1,1); |
| 64 | 64 |
mScreen = new DistortedScreen(); |
| 65 |
mEffects = new DistortedEffects(); |
|
| 65 | 66 |
} |
| 66 | 67 |
|
| 67 | 68 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 90 | 91 |
|
| 91 | 92 |
if( mTexture!=null ) mTexture.markForDeletion(); |
| 92 | 93 |
mTexture= new DistortedTexture(); |
| 93 |
mEffects = new DistortedEffects(texW, texH, 0);
|
|
| 94 |
mMesh.setStretch(texW,texH,0);
|
|
| 94 | 95 |
mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888); |
| 95 | 96 |
mCanvas = new Canvas(mBitmap); |
| 96 | 97 |
|
| src/main/java/org/distorted/examples/earth/EarthRenderer.java | ||
|---|---|---|
| 116 | 116 |
scale.add(mScaleFactor); |
| 117 | 117 |
|
| 118 | 118 |
mMesh = new MeshSphere(LEVEL); |
| 119 |
mMesh.setStretch(SIZE,SIZE,SIZE); |
|
| 119 | 120 |
mTexture = new DistortedTexture(); |
| 120 | 121 |
|
| 121 | 122 |
mObjWidth = mObjHeight = mObjDepth = SIZE; |
| ... | ... | |
| 129 | 130 |
quatInt1.add(mQuat1); |
| 130 | 131 |
quatInt2.add(mQuat2); |
| 131 | 132 |
|
| 132 |
mEffects = new DistortedEffects(SIZE,SIZE,SIZE);
|
|
| 133 |
mEffects = new DistortedEffects(); |
|
| 133 | 134 |
mEffects.apply( new MatrixEffectQuaternion(quatInt2, mCenter) ); |
| 134 | 135 |
mEffects.apply( new MatrixEffectQuaternion(quatInt1, mCenter) ); |
| 135 | 136 |
mEffects.apply( new MatrixEffectScale(scale)); |
| src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java | ||
|---|---|---|
| 78 | 78 |
MatrixEffectScale scaleEffect = new MatrixEffectScale(mScale); |
| 79 | 79 |
|
| 80 | 80 |
mMesh = new MeshRectangles(MESH_QUALITY,MESH_QUALITY*texHeight/texWidth); |
| 81 |
mMesh.setStretch(texWidth,texHeight,0); |
|
| 82 |
|
|
| 81 | 83 |
mTexture = new DistortedTexture(); |
| 82 |
mEffects = new DistortedEffects(texWidth,texHeight,0);
|
|
| 84 |
mEffects = new DistortedEffects(); |
|
| 83 | 85 |
mEffects.apply(scaleEffect); |
| 84 | 86 |
|
| 85 | 87 |
mScreen = new DistortedScreen(); |
| src/main/java/org/distorted/examples/flag/FlagRenderer.java | ||
|---|---|---|
| 54 | 54 |
private DistortedScreen mScreen; |
| 55 | 55 |
private Dynamic5D mWaveDyn; |
| 56 | 56 |
private Static5D mWaveSta1, mWaveSta2; |
| 57 |
private int mObjWidth, mObjHeight; |
|
| 57 |
private int mObjWidth, mObjHeight, mObjDepth;
|
|
| 58 | 58 |
private Static3D mMove, mScale, mCenter; |
| 59 | 59 |
|
| 60 | 60 |
Static4D mQuat1, mQuat2; |
| ... | ... | |
| 73 | 73 |
final Static4D mapLR = new Static4D(0.0f,0.0f,1.0f/GRIDX,1.0f ); |
| 74 | 74 |
final Static4D mapTB = new Static4D(0.0f,0.0f,1.0f ,1.0f/GRIDY); |
| 75 | 75 |
|
| 76 |
mObjWidth = 500; |
|
| 77 |
mObjHeight= 300; |
|
| 78 |
mObjDepth = 5; |
|
| 79 |
|
|
| 76 | 80 |
MeshCubes mesh = new MeshCubes(GRIDX,GRIDY,1, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
| 81 |
mesh.setStretch(mObjWidth,mObjHeight,mObjDepth); |
|
| 77 | 82 |
|
| 78 | 83 |
mTexture = new DistortedTexture(); |
| 79 | 84 |
|
| 80 |
mObjWidth = 500; |
|
| 81 |
mObjHeight= 300; |
|
| 82 |
|
|
| 83 | 85 |
mWaveDyn = new Dynamic5D(1000,0.0f); |
| 84 | 86 |
mWaveSta1= new Static5D(0,0,-180,0,0); // all other values besides the |
| 85 | 87 |
mWaveSta2= new Static5D(0,0,+180,0,0); // fourth will be set from the UI |
| ... | ... | |
| 91 | 93 |
mQuat1 = new Static4D( 0, 0, 0, 1); // unity quaternion |
| 92 | 94 |
mQuat2 = new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f); // something semi-random that looks good |
| 93 | 95 |
|
| 94 |
Static3D waveCenter = new Static3D(mObjWidth, mObjHeight/2, 0); // middle of the right edge
|
|
| 96 |
Static3D waveCenter = new Static3D(mObjWidth, mObjHeight/2, mObjDepth/2); // middle of the right edge
|
|
| 95 | 97 |
Static4D waveRegion = new Static4D(0,0,0,mObjWidth); |
| 96 | 98 |
|
| 97 |
DistortedEffects effects = new DistortedEffects(mObjWidth,mObjHeight,1);
|
|
| 99 |
DistortedEffects effects = new DistortedEffects(); |
|
| 98 | 100 |
effects.apply( new VertexEffectWave(mWaveDyn, waveCenter, waveRegion) ); |
| 99 | 101 |
|
| 100 | 102 |
mMove = new Static3D(0,0,0); |
| ... | ... | |
| 163 | 165 |
{
|
| 164 | 166 |
mScreenMin = width<height ? width:height; |
| 165 | 167 |
float factor = ( width*mObjHeight > height*mObjWidth ) ? (0.8f*height)/mObjHeight : (0.8f*width)/mObjWidth; |
| 166 |
mMove.set((width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , 0);
|
|
| 168 |
mMove.set((width-factor*mObjWidth)/2 , (height-factor*mObjHeight)/2 , -factor*mObjDepth/2);
|
|
| 167 | 169 |
mScale.set(factor,factor,factor); |
| 168 |
mCenter.set(mObjWidth/2,mObjHeight/2, 0);
|
|
| 170 |
mCenter.set(mObjWidth/2,mObjHeight/2,mObjDepth/2);
|
|
| 169 | 171 |
mScreen.resize(width, height); |
| 170 | 172 |
} |
| 171 | 173 |
|
| src/main/java/org/distorted/examples/generic/GenericActivity2.java | ||
|---|---|---|
| 80 | 80 |
mShowNormal = false; |
| 81 | 81 |
mUseOIT = false; |
| 82 | 82 |
|
| 83 |
mEffects= new DistortedEffects(1);
|
|
| 83 |
mEffects= new DistortedEffects(); |
|
| 84 | 84 |
|
| 85 | 85 |
int maxsize = numCols > numRows ? (numCols>numSlic ? numCols:numSlic) : (numRows>numSlic ? numRows:numSlic) ; |
| 86 | 86 |
|
| ... | ... | |
| 100 | 100 |
|
| 101 | 101 |
mMesh = new MeshCubes(numCols, str, numSlic, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
| 102 | 102 |
} |
| 103 |
mEffects.setStretch(numCols,numRows,numSlic);
|
|
| 103 |
mMesh.setStretch(numCols,numRows,numSlic);
|
|
| 104 | 104 |
break; |
| 105 | 105 |
case 1: mMesh = new MeshRectangles(numCols,numRows); |
| 106 |
mEffects.setStretch(numCols,numRows,0);
|
|
| 106 |
mMesh.setStretch(numCols,numRows,0);
|
|
| 107 | 107 |
break; |
| 108 | 108 |
case 2: mMesh = new MeshSphere(numRows); |
| 109 |
mEffects.setStretch(numRows,numRows,numRows);
|
|
| 109 |
mMesh.setStretch(numRows,numRows,numRows);
|
|
| 110 | 110 |
break; |
| 111 | 111 |
case 3: mMesh = new MeshQuad(); |
| 112 |
mMesh.setStretch(1,1,0); |
|
| 112 | 113 |
break; |
| 113 | 114 |
} |
| 114 | 115 |
|
| ... | ... | |
| 206 | 207 |
|
| 207 | 208 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 208 | 209 |
|
| 209 |
public int getWidth()
|
|
| 210 |
public float getWidth()
|
|
| 210 | 211 |
{
|
| 211 |
return mEffects==null ? 0: mEffects.getStartchX();
|
|
| 212 |
return mMesh==null ? 0: mMesh.getStretchX();
|
|
| 212 | 213 |
} |
| 213 | 214 |
|
| 214 | 215 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 215 | 216 |
|
| 216 |
public int getHeight()
|
|
| 217 |
public float getHeight()
|
|
| 217 | 218 |
{
|
| 218 |
return mEffects==null ? 0: mEffects.getStartchY();
|
|
| 219 |
return mMesh==null ? 0: mMesh.getStretchY();
|
|
| 219 | 220 |
} |
| 220 | 221 |
|
| 221 | 222 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 222 | 223 |
|
| 223 |
public int getDepth()
|
|
| 224 |
public float getDepth()
|
|
| 224 | 225 |
{
|
| 225 |
return mEffects==null ? 0: mEffects.getStartchZ();
|
|
| 226 |
return mMesh==null ? 0: mMesh.getStretchZ();
|
|
| 226 | 227 |
} |
| 227 | 228 |
|
| 228 | 229 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/examples/generic/GenericRenderer.java | ||
|---|---|---|
| 35 | 35 |
import org.distorted.library.main.DistortedScreen; |
| 36 | 36 |
import org.distorted.library.main.DistortedTexture; |
| 37 | 37 |
import org.distorted.library.mesh.MeshBase; |
| 38 |
import org.distorted.library.mesh.MeshRectangles;
|
|
| 38 |
import org.distorted.library.mesh.MeshQuad;
|
|
| 39 | 39 |
import org.distorted.library.mesh.MeshSphere; |
| 40 | 40 |
import org.distorted.library.type.Static3D; |
| 41 | 41 |
import org.distorted.library.type.Static4D; |
| ... | ... | |
| 55 | 55 |
|
| 56 | 56 |
private GLSurfaceView mView; |
| 57 | 57 |
private DistortedTexture mObjectTexture, mBackgroundTexture, mCenterTexture, mRegionTexture; |
| 58 |
private DistortedEffects mObjectEffects,mBackgroundEffects,mCenterEffects,mRegionEffects;
|
|
| 58 |
private DistortedEffects mObjectEffects; |
|
| 59 | 59 |
private DistortedScreen mScreen; |
| 60 |
private MeshQuad mRegionQuad, mCenterQuad, mBackgroundQuad; |
|
| 60 | 61 |
private DistortedNode mCenterNode, mRegionNode; |
| 61 |
private int mObjWidth, mObjHeight, mObjDepth;
|
|
| 62 |
private float mObjWidth, mObjHeight, mObjDepth;
|
|
| 62 | 63 |
private Static3D mCenterPoint, mRegionPoint, mRegionScalePoint; |
| 63 | 64 |
private Static3D mRotateCen, mMoveObject, mScaleObject, mMoveCenter, mScaleCenter, mMoveRegion, mMoveBackground, mScaleBackground; |
| 64 | 65 |
private boolean mShowingCenter=false; |
| ... | ... | |
| 94 | 95 |
|
| 95 | 96 |
mFactorObj = 1.0f; |
| 96 | 97 |
|
| 97 |
mObjectEffects = act.getEffects();
|
|
| 98 |
mBackgroundEffects = new DistortedEffects(1);
|
|
| 99 |
mCenterEffects = new DistortedEffects(1);
|
|
| 100 |
mRegionEffects = new DistortedEffects(1);
|
|
| 98 |
mObjectEffects = act.getEffects(); |
|
| 99 |
DistortedEffects backgroundEffects = new DistortedEffects();
|
|
| 100 |
DistortedEffects centerEffects = new DistortedEffects();
|
|
| 101 |
DistortedEffects regionEffects = new DistortedEffects();
|
|
| 101 | 102 |
|
| 102 |
MeshBase mesh = act.getMesh(); |
|
| 103 |
MeshRectangles quad = new MeshRectangles(1,1); |
|
| 103 |
MeshBase mesh = act.getMesh(); |
|
| 104 |
mRegionQuad = new MeshQuad(); |
|
| 105 |
mCenterQuad = new MeshQuad(); |
|
| 106 |
mBackgroundQuad = new MeshQuad(); |
|
| 104 | 107 |
|
| 105 | 108 |
mFactor = mesh instanceof MeshSphere ? 1.0f : 0.7f; |
| 106 | 109 |
|
| ... | ... | |
| 115 | 118 |
mRegionPoint= new Static3D(0,0,0); |
| 116 | 119 |
mRegionScalePoint = new Static3D(0,0,0); |
| 117 | 120 |
|
| 118 |
mCenterNode = new DistortedNode(mCenterTexture, mCenterEffects, quad);
|
|
| 119 |
mRegionNode = new DistortedNode(mRegionTexture, mRegionEffects, quad);
|
|
| 121 |
mCenterNode = new DistortedNode(mCenterTexture, centerEffects, mCenterQuad);
|
|
| 122 |
mRegionNode = new DistortedNode(mRegionTexture, regionEffects, mRegionQuad);
|
|
| 120 | 123 |
|
| 121 | 124 |
mScreen = new DistortedScreen(); |
| 122 | 125 |
mScreen.setProjection(FOV, NEAR); |
| 123 |
mScreen.attach(mBackgroundTexture, mBackgroundEffects, quad );
|
|
| 124 |
mScreen.attach(mObjectTexture , mObjectEffects , mesh );
|
|
| 126 |
mScreen.attach(mBackgroundTexture, backgroundEffects, mBackgroundQuad );
|
|
| 127 |
mScreen.attach(mObjectTexture , mObjectEffects , mesh ); |
|
| 125 | 128 |
|
| 126 |
int regionSize = mRegionEffects.getStartchX();
|
|
| 129 |
float regionSize = mRegionQuad.getStretchX();
|
|
| 127 | 130 |
mRotateCen = new Static3D(0 ,0, 0); |
| 128 | 131 |
|
| 129 | 132 |
MatrixEffectQuaternion quat1cen = new MatrixEffectQuaternion(mQuat1, mRotateCen); |
| 130 | 133 |
MatrixEffectQuaternion quat2cen = new MatrixEffectQuaternion(mQuat2, mRotateCen); |
| 131 | 134 |
MatrixEffectMove centerMove = new MatrixEffectMove(mCenterPoint); |
| 132 | 135 |
|
| 133 |
mCenterEffects.apply( new MatrixEffectScale(mScaleCenter) );
|
|
| 134 |
mCenterEffects.apply( centerMove );
|
|
| 135 |
mCenterEffects.apply( new MatrixEffectMove(mMoveCenter) );
|
|
| 136 |
mCenterEffects.apply(quat2cen);
|
|
| 137 |
mCenterEffects.apply(quat1cen);
|
|
| 136 |
centerEffects.apply( new MatrixEffectScale(mScaleCenter) );
|
|
| 137 |
centerEffects.apply( centerMove );
|
|
| 138 |
centerEffects.apply( new MatrixEffectMove(mMoveCenter) );
|
|
| 139 |
centerEffects.apply(quat2cen);
|
|
| 140 |
centerEffects.apply(quat1cen);
|
|
| 138 | 141 |
|
| 139 |
mRegionEffects.apply( new MatrixEffectMove(new Static3D( -regionSize*0.5f , -regionSize*0.5f , 0)) );
|
|
| 140 |
mRegionEffects.apply( new MatrixEffectScale(mRegionScalePoint) );
|
|
| 141 |
mRegionEffects.apply( new MatrixEffectMove(mRegionPoint) );
|
|
| 142 |
mRegionEffects.apply( centerMove );
|
|
| 143 |
mRegionEffects.apply( new MatrixEffectMove(mMoveRegion) );
|
|
| 144 |
mRegionEffects.apply(quat2cen);
|
|
| 145 |
mRegionEffects.apply(quat1cen);
|
|
| 142 |
regionEffects.apply( new MatrixEffectMove(new Static3D( -regionSize*0.5f , -regionSize*0.5f , 0)) );
|
|
| 143 |
regionEffects.apply( new MatrixEffectScale(mRegionScalePoint) );
|
|
| 144 |
regionEffects.apply( new MatrixEffectMove(mRegionPoint) );
|
|
| 145 |
regionEffects.apply( centerMove );
|
|
| 146 |
regionEffects.apply( new MatrixEffectMove(mMoveRegion) );
|
|
| 147 |
regionEffects.apply(quat2cen);
|
|
| 148 |
regionEffects.apply(quat1cen);
|
|
| 146 | 149 |
|
| 147 | 150 |
resetMatrixEffects(); |
| 148 | 151 |
|
| 149 | 152 |
// quite tricky: move the background exactly to the FAR plane! (see InternalOutputSurface.setProjection() ) |
| 150 |
mBackgroundEffects.apply(new MatrixEffectScale(mScaleBackground) );
|
|
| 151 |
mBackgroundEffects.apply(new MatrixEffectMove(mMoveBackground) );
|
|
| 153 |
backgroundEffects.apply(new MatrixEffectScale(mScaleBackground) );
|
|
| 154 |
backgroundEffects.apply(new MatrixEffectMove(mMoveBackground) );
|
|
| 152 | 155 |
} |
| 153 | 156 |
|
| 154 | 157 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 216 | 219 |
|
| 217 | 220 |
void setRegion(float x, float y, float z, float r) |
| 218 | 221 |
{
|
| 219 |
float factorReg = 2*mFactorObj*r/mRegionEffects.getStartchX();
|
|
| 222 |
float factorReg = 2*mFactorObj*r/mRegionQuad.getStretchX();
|
|
| 220 | 223 |
mRegionPoint.set(mFactorObj*x,mFactorObj*y, mFactorObj*z); |
| 221 | 224 |
mRegionScalePoint.set(factorReg,factorReg,factorReg); |
| 222 | 225 |
} |
| ... | ... | |
| 243 | 246 |
mScreenMin = width<height ? width:height; |
| 244 | 247 |
|
| 245 | 248 |
float factorCen; |
| 246 |
int centerSize = mCenterEffects.getStartchX();
|
|
| 249 |
float centerSize = mCenterQuad.getStretchX();
|
|
| 247 | 250 |
|
| 248 | 251 |
if( width*mObjHeight > height*mObjWidth ) // screen is more 'horizontal' than the Object |
| 249 | 252 |
{
|
| ... | ... | |
| 267 | 270 |
mScaleCenter.set(factorCen,factorCen,factorCen); |
| 268 | 271 |
mMoveRegion.set( (width -mFactorObj*mObjWidth )/2 ,(height-mFactorObj*mObjHeight)/2 , 12 ); |
| 269 | 272 |
|
| 270 |
int backgroundSize = mBackgroundEffects.getStartchX();
|
|
| 273 |
float backgroundSize = mBackgroundQuad.getStretchX();
|
|
| 271 | 274 |
float factorBackX = ((float)width)/backgroundSize; |
| 272 | 275 |
float factorBackY = ((float)height)/backgroundSize; |
| 273 | 276 |
|
| src/main/java/org/distorted/examples/generic/GenericTab.java | ||
|---|---|---|
| 20 | 20 |
package org.distorted.examples.generic; |
| 21 | 21 |
|
| 22 | 22 |
import android.os.Bundle; |
| 23 |
import android.support.annotation.NonNull; |
|
| 23 | 24 |
import android.support.v4.app.Fragment; |
| 24 | 25 |
import android.view.LayoutInflater; |
| 25 | 26 |
import android.view.View; |
| ... | ... | |
| 62 | 63 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 63 | 64 |
|
| 64 | 65 |
@Override |
| 65 |
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) |
|
| 66 |
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
|
| 66 | 67 |
{
|
| 67 | 68 |
Bundle args = getArguments(); |
| 68 | 69 |
|
| src/main/java/org/distorted/examples/girl/GirlRenderer.java | ||
|---|---|---|
| 115 | 115 |
diHips.add(dMiddle); |
| 116 | 116 |
diHips.add(dBegin); |
| 117 | 117 |
|
| 118 |
mEffects = new DistortedEffects(1);
|
|
| 118 |
mEffects = new DistortedEffects(); |
|
| 119 | 119 |
|
| 120 | 120 |
mEffects.apply( new VertexEffectSink ( diSink, pLeft , sinkRegion) ); |
| 121 | 121 |
mEffects.apply( new VertexEffectSink ( diSink, pRight, sinkRegion) ); |
| ... | ... | |
| 210 | 210 |
bmpHeight = bitmap.getHeight(); |
| 211 | 211 |
bmpWidth = bitmap.getWidth(); |
| 212 | 212 |
|
| 213 |
mEffects.setStretch(bmpWidth,bmpHeight,0); |
|
| 214 |
|
|
| 215 | 213 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 216 | 214 |
mTexture.setTexture(bitmap); |
| 217 | 215 |
|
| 218 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 216 |
if( mMesh==null ) |
|
| 217 |
{
|
|
| 218 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 219 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 220 |
} |
|
| 219 | 221 |
|
| 220 | 222 |
mScreen.detachAll(); |
| 221 | 223 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/glow/GlowRenderer.java | ||
|---|---|---|
| 32 | 32 |
import org.distorted.library.main.DistortedEffects; |
| 33 | 33 |
import org.distorted.library.main.DistortedScreen; |
| 34 | 34 |
import org.distorted.library.main.DistortedTexture; |
| 35 |
import org.distorted.library.mesh.MeshRectangles;
|
|
| 35 |
import org.distorted.library.mesh.MeshQuad;
|
|
| 36 | 36 |
import org.distorted.library.type.Static1D; |
| 37 | 37 |
import org.distorted.library.type.Static3D; |
| 38 | 38 |
import org.distorted.library.type.Static4D; |
| ... | ... | |
| 74 | 74 |
|
| 75 | 75 |
mGlow = new PostprocessEffectGlow(mRadius,mColor); |
| 76 | 76 |
|
| 77 |
DistortedEffects effects = new DistortedEffects(mRootW,mRootH,0);
|
|
| 77 |
DistortedEffects effects = new DistortedEffects(); |
|
| 78 | 78 |
effects.apply(new MatrixEffectScale(mScale)); |
| 79 | 79 |
effects.apply(new MatrixEffectMove(mMove)); |
| 80 | 80 |
effects.apply(mGlow); |
| 81 | 81 |
|
| 82 |
MeshQuad quad = new MeshQuad(); |
|
| 83 |
quad.setStretch(mRootW,mRootH,0); |
|
| 84 |
|
|
| 82 | 85 |
mScreen = new DistortedScreen(); |
| 83 |
mScreen.attach(mLeaf, effects, new MeshRectangles(1,1) );
|
|
| 86 |
mScreen.attach(mLeaf, effects, quad );
|
|
| 84 | 87 |
mScreen.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); |
| 85 | 88 |
mScreen.showFPS(); |
| 86 | 89 |
} |
| src/main/java/org/distorted/examples/inflate/InflateActivity2.java | ||
|---|---|---|
| 122 | 122 |
|
| 123 | 123 |
mMesh = new MeshCubes(mNumCols, str, mNumSlic, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
| 124 | 124 |
} |
| 125 |
mMesh.setStretch(mNumCols,mNumRows,mNumSlic); |
|
| 125 | 126 |
break; |
| 126 | 127 |
case 1: mMesh = new MeshRectangles(mNumCols,mNumRows); |
| 128 |
mMesh.setStretch(mNumCols,mNumRows,0); |
|
| 127 | 129 |
break; |
| 128 | 130 |
case 2: mMesh = new MeshSphere(mNumRows); |
| 131 |
mMesh.setStretch(mNumRows,mNumRows,mNumRows); |
|
| 129 | 132 |
break; |
| 130 | 133 |
case 3: mMesh = new MeshQuad(); |
| 134 |
mMesh.setStretch(1,1,0); |
|
| 131 | 135 |
break; |
| 132 | 136 |
} |
| 133 | 137 |
|
| src/main/java/org/distorted/examples/inflate/InflateRenderer.java | ||
|---|---|---|
| 50 | 50 |
private DistortedEffects mEffects; |
| 51 | 51 |
private MeshBase mMesh; |
| 52 | 52 |
private DistortedScreen mScreen; |
| 53 |
private int mObjWidth, mObjHeight, mObjDepth;
|
|
| 53 |
private float mObjWidth, mObjHeight, mObjDepth;
|
|
| 54 | 54 |
private Static3D mMove, mScale, mCenter; |
| 55 | 55 |
private Static1D mAlpha; |
| 56 | 56 |
|
| ... | ... | |
| 74 | 74 |
mTexture = act.getTexture(); |
| 75 | 75 |
mMesh = act.getMesh(); |
| 76 | 76 |
|
| 77 |
mObjWidth = act.getNumCols();
|
|
| 78 |
mObjHeight= act.getNumRows();
|
|
| 79 |
mObjDepth = act.getNumSlic();
|
|
| 77 |
mObjWidth = mMesh.getStretchX();
|
|
| 78 |
mObjHeight= mMesh.getStretchY();
|
|
| 79 |
mObjDepth = mMesh.getStretchZ();
|
|
| 80 | 80 |
|
| 81 | 81 |
mQuat1 = new Static4D(0,0,0,1); // unity |
| 82 | 82 |
mQuat2 = new Static4D(0,0,0,1); // quaternions |
| ... | ... | |
| 87 | 87 |
quatInt1.add(mQuat1); |
| 88 | 88 |
quatInt2.add(mQuat2); |
| 89 | 89 |
|
| 90 |
mEffects = new DistortedEffects(mObjWidth,mObjHeight,mObjDepth);
|
|
| 90 |
mEffects = new DistortedEffects(); |
|
| 91 | 91 |
mEffects.apply( new MatrixEffectQuaternion(quatInt2, mCenter) ); |
| 92 | 92 |
mEffects.apply( new MatrixEffectQuaternion(quatInt1, mCenter) ); |
| 93 | 93 |
mEffects.apply( new MatrixEffectScale(mScale)); |
| src/main/java/org/distorted/examples/listener/ListenerRenderer.java | ||
|---|---|---|
| 163 | 163 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 164 | 164 |
mTexture.setTexture(bitmap); |
| 165 | 165 |
|
| 166 |
if( mMesh==null ) mMesh = new MeshRectangles(50,50*bmpHeight/bmpWidth); |
|
| 166 |
if( mMesh==null ) |
|
| 167 |
{
|
|
| 168 |
mMesh = new MeshRectangles(50,50*bmpHeight/bmpWidth); |
|
| 169 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 170 |
} |
|
| 167 | 171 |
|
| 168 | 172 |
if( mEffects==null ) |
| 169 | 173 |
{
|
| 170 |
mEffects = new DistortedEffects(bmpWidth,bmpHeight,0);
|
|
| 174 |
mEffects = new DistortedEffects(); |
|
| 171 | 175 |
mEffects.apply(new MatrixEffectScale(mScale)); |
| 172 | 176 |
mEffects.apply(new MatrixEffectMove(mMove)); |
| 173 | 177 |
} |
| src/main/java/org/distorted/examples/mirror/MirrorRenderer.java | ||
|---|---|---|
| 32 | 32 |
import org.distorted.library.main.DistortedFramebuffer; |
| 33 | 33 |
import org.distorted.library.main.DistortedScreen; |
| 34 | 34 |
import org.distorted.library.main.DistortedTexture; |
| 35 |
import org.distorted.library.mesh.MeshRectangles;
|
|
| 35 |
import org.distorted.library.mesh.MeshQuad;
|
|
| 36 | 36 |
import org.distorted.library.type.Static1D; |
| 37 | 37 |
import org.distorted.library.type.Static3D; |
| 38 | 38 |
|
| ... | ... | |
| 60 | 60 |
private DistortedTexture mTextureMirror, mTextureHead; |
| 61 | 61 |
private DistortedFramebuffer mOffScreen1, mOffScreen2; |
| 62 | 62 |
private DistortedScreen mScreen; |
| 63 |
private MeshRectangles mQuad;
|
|
| 63 |
private MeshQuad mQuad1, mQuad2, mQuadMirror, mQuadHead;
|
|
| 64 | 64 |
private Static3D mHeadPosition, mScaleMirror, mMoveOffscreen2, mScaleHead; |
| 65 | 65 |
|
| 66 | 66 |
private int mX; |
| ... | ... | |
| 72 | 72 |
MirrorRenderer(GLSurfaceView view) |
| 73 | 73 |
{
|
| 74 | 74 |
mView = view; |
| 75 |
mQuad = new MeshRectangles(1,1); |
|
| 76 | 75 |
mScreen = new DistortedScreen(); |
| 77 | 76 |
|
| 78 |
mEffectsMirror = new DistortedEffects(1); |
|
| 79 |
mEffectsHead = new DistortedEffects(1); |
|
| 80 |
mEffectsOffscreen1= new DistortedEffects(1); |
|
| 81 |
mEffectsOffscreen2= new DistortedEffects(1); |
|
| 82 |
mEffectsScreen = new DistortedEffects(1); |
|
| 77 |
mQuad1 = new MeshQuad(); |
|
| 78 |
mQuad2 = new MeshQuad(); |
|
| 79 |
mQuadMirror= new MeshQuad(); |
|
| 80 |
mQuadHead = new MeshQuad(); |
|
| 81 |
|
|
| 82 |
mEffectsMirror = new DistortedEffects(); |
|
| 83 |
mEffectsHead = new DistortedEffects(); |
|
| 84 |
mEffectsOffscreen1= new DistortedEffects(); |
|
| 85 |
mEffectsOffscreen2= new DistortedEffects(); |
|
| 86 |
mEffectsScreen = new DistortedEffects(); |
|
| 83 | 87 |
|
| 84 | 88 |
mX = MirrorActivity.INIT_POSITION; |
| 85 | 89 |
|
| ... | ... | |
| 143 | 147 |
int offscreen2W = (int)(MIRROR_SCALE*mScreenW); |
| 144 | 148 |
int offscreen2H = (int)(MIRROR_SCALE*mScreenH); |
| 145 | 149 |
|
| 146 |
mEffectsOffscreen1.setStretch(offscreen1W, offscreen1H, 0); |
|
| 147 |
mEffectsOffscreen2.setStretch(offscreen2W, offscreen2H, 0); |
|
| 148 |
mEffectsScreen.setStretch(offscreen1W, offscreen1H, 0); |
|
| 150 |
mQuad1.setStretch(offscreen1W, offscreen1H, 0); |
|
| 151 |
mQuad2.setStretch(offscreen2W, offscreen2H, 0); |
|
| 149 | 152 |
|
| 150 | 153 |
mOffScreen1 = new DistortedFramebuffer( offscreen1W, offscreen1H, 1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL ); |
| 151 | 154 |
mOffScreen2 = new DistortedFramebuffer( offscreen2W, offscreen2H, 1, DistortedFramebuffer.NO_DEPTH_NO_STENCIL ); |
| ... | ... | |
| 158 | 161 |
mHeadPosition.set1( mScreenH*MIRROR_MARGIN*mMirrorW/mMirrorH ); |
| 159 | 162 |
setPosition(mX); |
| 160 | 163 |
|
| 161 |
mOffScreen1.attach( mTextureMirror, mEffectsMirror , mQuad ); |
|
| 162 |
mOffScreen1.attach( mOffScreen2 , mEffectsOffscreen2, mQuad ); |
|
| 163 |
mOffScreen1.attach( mTextureHead , mEffectsHead , mQuad ); |
|
| 164 |
mOffScreen2.attach( mOffScreen1 , mEffectsOffscreen1, mQuad ); |
|
| 164 |
mOffScreen1.attach( mTextureMirror, mEffectsMirror , mQuadMirror );
|
|
| 165 |
mOffScreen1.attach( mOffScreen2 , mEffectsOffscreen2, mQuad2 );
|
|
| 166 |
mOffScreen1.attach( mTextureHead , mEffectsHead , mQuadHead );
|
|
| 167 |
mOffScreen2.attach( mOffScreen1 , mEffectsOffscreen1, mQuad1 );
|
|
| 165 | 168 |
|
| 166 | 169 |
mScreen.detachAll(); |
| 167 |
mScreen.attach ( mOffScreen1 , mEffectsScreen , mQuad ); |
|
| 170 |
mScreen.attach ( mOffScreen1 , mEffectsScreen , mQuad1 );
|
|
| 168 | 171 |
mScreen.resize(mScreenW,mScreenH); |
| 169 | 172 |
} |
| 170 | 173 |
} |
| ... | ... | |
| 198 | 201 |
mHeadW = bitmapH.getWidth(); |
| 199 | 202 |
mHeadH = bitmapH.getHeight(); |
| 200 | 203 |
|
| 201 |
mEffectsMirror.setStretch(mMirrorW,mMirrorH,0);
|
|
| 202 |
mEffectsHead.setStretch(mHeadW, mHeadH,0);
|
|
| 204 |
mQuadMirror.setStretch(mMirrorW,mMirrorH,0);
|
|
| 205 |
mQuadHead.setStretch(mHeadW, mHeadH,0);
|
|
| 203 | 206 |
|
| 204 | 207 |
if( mTextureMirror==null ) mTextureMirror = new DistortedTexture(); |
| 205 | 208 |
if( mTextureHead ==null ) mTextureHead = new DistortedTexture(); |
| src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java | ||
|---|---|---|
| 84 | 84 |
dRight.add( new Static3D( 0, 0, 0) ); |
| 85 | 85 |
dRight.add( new Static3D( 20, 10, 0) ); |
| 86 | 86 |
|
| 87 |
mEffects = new DistortedEffects(1);
|
|
| 87 |
mEffects = new DistortedEffects(); |
|
| 88 | 88 |
mEffects.apply( new VertexEffectDistort(dLeft , pLeft , rLeft ) ); |
| 89 | 89 |
mEffects.apply( new VertexEffectDistort(dRight, pRight, rRight) ); |
| 90 | 90 |
|
| ... | ... | |
| 150 | 150 |
bmpHeight = bitmap.getHeight(); |
| 151 | 151 |
bmpWidth = bitmap.getWidth(); |
| 152 | 152 |
|
| 153 |
// We could have gotten here after the activity went to the background |
|
| 154 |
// for a brief amount of time; in this case mTexture is already created. |
|
| 155 |
// Do not leak memory by creating it the second time around. |
|
| 156 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
|
| 157 |
|
|
| 158 |
// likewise the Mesh |
|
| 153 | 159 |
// This will make the Mesh stretched by bmpWidth x bmpHeight even before any effects |
| 154 | 160 |
// are applied to it (the Mesh - MeshRectangles - is flat, so the third parameter does not |
| 155 | 161 |
// not matter). bmpWight x bmpHeight is the size of the Bitmap, thus this means that we can |
| ... | ... | |
| 158 | 164 |
// around its center has to be centered at (bmpWidth/2, bmpHeight/2, 0). |
| 159 | 165 |
// Without this call, the default size of the Mesh is 1x1x0 ( or 1x1x1 in case of not-flat |
| 160 | 166 |
// Meshes) so we would need to be rotating around (0.5,0.5,0.0). |
| 161 |
mEffects.setStretch(bmpWidth,bmpHeight,0); |
|
| 162 |
|
|
| 163 |
// We could have gotten here after the activity went to the background |
|
| 164 |
// for a brief amount of time; in this case mTexture is already created. |
|
| 165 |
// Do not leak memory by creating it the second time around. |
|
| 166 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
|
| 167 |
|
|
| 168 |
// likewise the Mesh |
|
| 169 |
if( mMesh==null ) mMesh = new MeshRectangles(9,9*bmpHeight/bmpWidth); |
|
| 167 |
if( mMesh==null ) |
|
| 168 |
{
|
|
| 169 |
mMesh = new MeshRectangles(9,9*bmpHeight/bmpWidth); |
|
| 170 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 171 |
} |
|
| 170 | 172 |
|
| 171 | 173 |
// even if mTexture wasn't null, we still need to call setTexture() on it |
| 172 | 174 |
// because every time activity goes to background, its OpenGL resources |
| src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java | ||
|---|---|---|
| 65 | 65 |
mPaint.setStyle(Style.FILL); |
| 66 | 66 |
|
| 67 | 67 |
mView = v; |
| 68 |
mEffects= new DistortedEffects(1);
|
|
| 68 |
mEffects= new DistortedEffects(); |
|
| 69 | 69 |
mScreen = new DistortedScreen(); |
| 70 | 70 |
mRefresh= true; |
| 71 | 71 |
} |
| ... | ... | |
| 141 | 141 |
mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888); |
| 142 | 142 |
mCanvas = new Canvas(mBitmap); |
| 143 | 143 |
|
| 144 |
mEffects.setStretch(texW,texH,0); |
|
| 145 |
|
|
| 146 | 144 |
if( mMesh!=null ) mMesh.markForDeletion(); |
| 147 | 145 |
mMesh = new MeshRectangles(80,80*texH/texW); |
| 146 |
mMesh.setStretch(texW,texH,0); |
|
| 148 | 147 |
|
| 149 | 148 |
mScreen.detachAll(); |
| 150 | 149 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/movingglow/MovingGlowRenderer.java | ||
|---|---|---|
| 35 | 35 |
import org.distorted.library.main.DistortedScreen; |
| 36 | 36 |
import org.distorted.library.main.DistortedTexture; |
| 37 | 37 |
import org.distorted.library.mesh.MeshBase; |
| 38 |
import org.distorted.library.mesh.MeshQuad; |
|
| 38 | 39 |
import org.distorted.library.mesh.MeshRectangles; |
| 39 | 40 |
import org.distorted.library.message.EffectListener; |
| 40 | 41 |
import org.distorted.library.type.Dynamic1D; |
| ... | ... | |
| 78 | 79 |
|
| 79 | 80 |
mLeaf = new DistortedTexture(); |
| 80 | 81 |
DistortedTexture surface = new DistortedTexture(); |
| 81 |
MeshBase mesh = new MeshRectangles(1,1); |
|
| 82 | 82 |
|
| 83 |
DistortedNode root = new DistortedNode(surface, new DistortedEffects(mRootW,mRootH,0), mesh); |
|
| 84 |
|
|
| 83 |
MeshQuad rootMesh = new MeshQuad(); |
|
| 84 |
rootMesh.setStretch(mRootW,mRootH,0); |
|
| 85 |
MeshQuad leafMesh = new MeshQuad(); |
|
| 86 |
leafMesh.setStretch(LEAF_SIZE,LEAF_SIZE,0); |
|
| 87 |
|
|
| 88 |
DistortedEffects rootEffects = new DistortedEffects(); |
|
| 89 |
DistortedNode root = new DistortedNode(surface, rootEffects, rootMesh); |
|
| 90 |
|
|
| 85 | 91 |
Static3D moveVector = new Static3D(0.55f*LEAF_SIZE, (mRootH-LEAF_SIZE)/2, 0); |
| 86 | 92 |
Static1D chromaLevel= new Static1D(0.5f); |
| 87 | 93 |
Static3D center = new Static3D(mRootW/2, mRootH/2, 0); |
| ... | ... | |
| 91 | 97 |
|
| 92 | 98 |
for(int j=0; j<NUM_LEAVES; j++) |
| 93 | 99 |
{
|
| 94 |
mLeafEffects[j] = new DistortedEffects(LEAF_SIZE,LEAF_SIZE,0);
|
|
| 100 |
mLeafEffects[j] = new DistortedEffects(); |
|
| 95 | 101 |
mLeafEffects[j].apply(leafMove); |
| 96 | 102 |
mLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) ); |
| 97 | 103 |
mLeafEffects[j].apply( new FragmentEffectChroma(chromaLevel, new Static3D(colors[3*j],colors[3*j+1], colors[3*j+2])) ); |
| 98 |
DistortedNode node = new DistortedNode( mLeaf, mLeafEffects[j], mesh);
|
|
| 104 |
DistortedNode node = new DistortedNode( mLeaf, mLeafEffects[j], leafMesh);
|
|
| 99 | 105 |
root.attach(node); |
| 100 | 106 |
} |
| 101 | 107 |
|
| src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java | ||
|---|---|---|
| 94 | 94 |
for(int i=0; i<NUM_OBJECTS; i++) |
| 95 | 95 |
{
|
| 96 | 96 |
mMoveVector[i] = new Static3D(0,0,0); |
| 97 |
effects[i] = new DistortedEffects(OBJ_SIZE,OBJ_SIZE,OBJ_SIZE);
|
|
| 97 |
effects[i] = new DistortedEffects(); |
|
| 98 | 98 |
mBlurStatus[i] = false; |
| 99 | 99 |
} |
| 100 | 100 |
|
| 101 | 101 |
mBlurVector = new Static1D(10); |
| 102 | 102 |
|
| 103 | 103 |
MeshCubes mesh = new MeshCubes(1,1,1); |
| 104 |
mesh.setStretch(OBJ_SIZE,OBJ_SIZE,OBJ_SIZE); |
|
| 104 | 105 |
|
| 105 | 106 |
mTex1 = new DistortedTexture(); |
| 106 | 107 |
mTex2 = new DistortedTexture(); |
| src/main/java/org/distorted/examples/objecttree/ObjectTreeRenderer.java | ||
|---|---|---|
| 78 | 78 |
chromaDyn.add(new Static1D(0.0f)); |
| 79 | 79 |
chromaDyn.add(new Static1D(0.8f)); |
| 80 | 80 |
|
| 81 |
mEffects= new DistortedEffects(1);
|
|
| 81 |
mEffects= new DistortedEffects(); |
|
| 82 | 82 |
mEffects.apply(new MatrixEffectScale(mScale)); |
| 83 | 83 |
mEffects.apply(new MatrixEffectMove(mMove)); |
| 84 | 84 |
mEffects.apply(new FragmentEffectChroma(chromaDyn, new Static3D(0,0,1))); |
| ... | ... | |
| 181 | 181 |
int gridHeight= bitmap2.getHeight(); |
| 182 | 182 |
int gridDepth = gridWidth/GRID; |
| 183 | 183 |
|
| 184 |
mEffects.setStretch(lisaWidth,lisaHeight,0); |
|
| 185 |
|
|
| 186 | 184 |
if( mLisaTexture==null ) mLisaTexture = new DistortedTexture(); |
| 187 | 185 |
if( mGridTexture==null ) mGridTexture = new DistortedTexture(); |
| 188 | 186 |
mLisaTexture.setTexture(bitmap1); |
| 189 | 187 |
mGridTexture.setTexture(bitmap2); |
| 190 | 188 |
|
| 191 |
DistortedEffects gridEffects = new DistortedEffects(gridWidth,gridHeight,gridDepth); |
|
| 189 |
DistortedEffects gridEffects = new DistortedEffects(); |
|
| 190 |
|
|
| 191 |
if( mMeshRectangles ==null ) |
|
| 192 |
{
|
|
| 193 |
mMeshRectangles = new MeshRectangles(1,1); |
|
| 194 |
mMeshRectangles.setStretch(lisaWidth,lisaHeight,0); |
|
| 195 |
} |
|
| 192 | 196 |
|
| 193 |
if( mMeshRectangles ==null ) mMeshRectangles = new MeshRectangles(1,1); |
|
| 194 |
if( mMeshCubes==null) mMeshCubes= new MeshCubes(GRID,GRID,1, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
|
| 197 |
if( mMeshCubes==null) |
|
| 198 |
{
|
|
| 199 |
mMeshCubes= new MeshCubes(GRID,GRID,1, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
|
| 200 |
mMeshCubes.setStretch(gridWidth,gridHeight,gridDepth); |
|
| 201 |
} |
|
| 195 | 202 |
|
| 196 | 203 |
mRoot = new DistortedNode(mLisaTexture, mEffects, mMeshRectangles); |
| 197 | 204 |
mRoot.attach(mGridTexture,gridEffects,mMeshCubes); |
| src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java | ||
|---|---|---|
| 35 | 35 |
import org.distorted.library.main.DistortedLibrary; |
| 36 | 36 |
import org.distorted.library.main.DistortedScreen; |
| 37 | 37 |
import org.distorted.library.main.DistortedNode; |
| 38 |
import org.distorted.library.mesh.MeshRectangles;
|
|
| 38 |
import org.distorted.library.mesh.MeshQuad;
|
|
| 39 | 39 |
import org.distorted.library.type.Dynamic1D; |
| 40 | 40 |
import org.distorted.library.type.Static3D; |
| 41 | 41 |
import org.distorted.library.type.Static1D; |
| ... | ... | |
| 57 | 57 |
private DistortedNode mRoot; |
| 58 | 58 |
private DistortedTexture mLeaf; |
| 59 | 59 |
private DistortedScreen mScreen; |
| 60 |
private MeshRectangles mMesh;
|
|
| 60 |
private MeshQuad mLeafMesh;
|
|
| 61 | 61 |
private int mScreenW, mScreenH; |
| 62 | 62 |
private int mPrevRendered, mCurrRendered; |
| 63 | 63 |
private Static3D mMove, mScale; |
| ... | ... | |
| 78 | 78 |
} |
| 79 | 79 |
else if( number>0 && number<=NUM_LEAVES ) |
| 80 | 80 |
{
|
| 81 |
if( checked ) mCircleNode[color].attach( mLeaf, mEffects[number-1], mMesh); |
|
| 81 |
if( checked ) mCircleNode[color].attach( mLeaf, mEffects[number-1], mLeafMesh);
|
|
| 82 | 82 |
else mCircleNode[color].detach(mEffects[number-1]); |
| 83 | 83 |
} |
| 84 | 84 |
} |
| ... | ... | |
| 98 | 98 |
|
| 99 | 99 |
mLeaf = new DistortedTexture(); |
| 100 | 100 |
DistortedTexture surface = new DistortedTexture(); |
| 101 |
mMesh = new MeshRectangles(1,1); |
|
| 101 |
|
|
| 102 |
mLeafMesh = new MeshQuad(); |
|
| 103 |
mLeafMesh.setStretch(LEAF_SIZE,LEAF_SIZE,0); |
|
| 104 |
MeshQuad circleMesh = new MeshQuad(); |
|
| 105 |
circleMesh.setStretch(3*LEAF_SIZE,3*LEAF_SIZE,0); |
|
| 106 |
MeshQuad rootMesh = new MeshQuad(); |
|
| 107 |
rootMesh.setStretch(mScreenW,mScreenH,0); |
|
| 108 |
|
|
| 102 | 109 |
mMove = new Static3D(0,0,0); |
| 103 | 110 |
mScale= new Static3D(1,1,1); |
| 104 | 111 |
|
| 105 |
DistortedEffects rootEffects = new DistortedEffects(mScreenW,mScreenH,0);
|
|
| 112 |
DistortedEffects rootEffects = new DistortedEffects(); |
|
| 106 | 113 |
rootEffects.apply(new MatrixEffectScale(mScale)); |
| 107 | 114 |
rootEffects.apply(new MatrixEffectMove(mMove)); |
| 108 | 115 |
|
| 109 |
mRoot = new DistortedNode(new DistortedTexture(), rootEffects, mMesh);
|
|
| 116 |
mRoot = new DistortedNode(new DistortedTexture(), rootEffects, rootMesh);
|
|
| 110 | 117 |
|
| 111 | 118 |
Dynamic1D rot = new Dynamic1D(5000,0.0f); |
| 112 | 119 |
rot.setMode(Dynamic1D.MODE_JUMP); |
| ... | ... | |
| 122 | 129 |
|
| 123 | 130 |
for(int j=0; j<NUM_LEAVES; j++) |
| 124 | 131 |
{
|
| 125 |
mEffects[j] = new DistortedEffects(LEAF_SIZE,LEAF_SIZE,0);
|
|
| 132 |
mEffects[j] = new DistortedEffects(); |
|
| 126 | 133 |
mEffects[j].apply(new MatrixEffectMove(moveVector)); |
| 127 | 134 |
mEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) ); |
| 128 | 135 |
} |
| 129 | 136 |
|
| 130 | 137 |
for(int i=0; i<NUM_CIRCLES; i++) |
| 131 | 138 |
{
|
| 132 |
DistortedEffects effects = new DistortedEffects(3*LEAF_SIZE,3*LEAF_SIZE,0);
|
|
| 139 |
DistortedEffects effects = new DistortedEffects(); |
|
| 133 | 140 |
effects.apply( new MatrixEffectRotate(rot, axis, center) ); |
| 134 | 141 |
effects.apply( new MatrixEffectMove(new Static3D(positions[2*i], positions[2*i+1], 0)) ); |
| 135 | 142 |
effects.apply( new FragmentEffectChroma(new Static1D(0.5f), new Static3D(colors[3*i],colors[3*i+1], colors[3*i+2])) ); |
| 136 | 143 |
|
| 137 |
mCircleNode[i] = new DistortedNode( surface, effects, mMesh);
|
|
| 144 |
mCircleNode[i] = new DistortedNode( surface, effects, circleMesh);
|
|
| 138 | 145 |
mRoot.attach(mCircleNode[i]); |
| 139 | 146 |
|
| 140 |
for(int j=0; j<NUM_LEAVES; j++) mCircleNode[i].attach(mLeaf, mEffects[j], mMesh); |
|
| 147 |
for(int j=0; j<NUM_LEAVES; j++) mCircleNode[i].attach(mLeaf, mEffects[j], mLeafMesh);
|
|
| 141 | 148 |
} |
| 142 | 149 |
|
| 143 | 150 |
mScreen = new DistortedScreen(); |
| src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java | ||
|---|---|---|
| 95 | 95 |
dRight.add( new Static3D( 0, 0, 0) ); |
| 96 | 96 |
dRight.add( new Static3D( 20, 10, 0) ); |
| 97 | 97 |
|
| 98 |
mEffects = new DistortedEffects(1);
|
|
| 98 |
mEffects = new DistortedEffects(); |
|
| 99 | 99 |
mEffects.apply( new VertexEffectDistort(dLeft , pLeft , rLeft ) ); |
| 100 | 100 |
mEffects.apply( new VertexEffectDistort(dRight, pRight, rRight) ); |
| 101 | 101 |
|
| ... | ... | |
| 262 | 262 |
bmpHeight = bmp.getHeight(); |
| 263 | 263 |
bmpWidth = bmp.getWidth(); |
| 264 | 264 |
|
| 265 |
mEffects.setStretch(bmpWidth,bmpHeight,0); |
|
| 266 |
|
|
| 267 | 265 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 268 | 266 |
mTexture.setTexture(bmp); |
| 269 | 267 |
|
| 270 |
if( mMesh==null ) mMesh = new MeshRectangles(9,9*bmpHeight/bmpWidth); |
|
| 268 |
if( mMesh==null ) |
|
| 269 |
{
|
|
| 270 |
mMesh = new MeshRectangles(9,9*bmpHeight/bmpWidth); |
|
| 271 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 272 |
} |
|
| 271 | 273 |
|
| 272 | 274 |
mScreen.detachAll(); |
| 273 | 275 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeRenderer.java | ||
|---|---|---|
| 34 | 34 |
import org.distorted.library.main.DistortedNode; |
| 35 | 35 |
import org.distorted.library.main.DistortedScreen; |
| 36 | 36 |
import org.distorted.library.main.DistortedTexture; |
| 37 |
import org.distorted.library.mesh.MeshQuad; |
|
| 37 | 38 |
import org.distorted.library.mesh.MeshRectangles; |
| 38 | 39 |
import org.distorted.library.type.Dynamic1D; |
| 39 | 40 |
import org.distorted.library.type.Static1D; |
| ... | ... | |
| 78 | 79 |
|
| 79 | 80 |
mLeaf = new DistortedTexture(); |
| 80 | 81 |
|
| 81 |
MeshRectangles mesh = new MeshRectangles(1,1); |
|
| 82 |
MeshQuad rootMesh = new MeshQuad(); |
|
| 83 |
rootMesh.setStretch(mScreenW,mScreenH,0); |
|
| 84 |
MeshQuad innerMesh = new MeshQuad(); |
|
| 85 |
innerMesh.setStretch(INNER*LEAF_SIZE,INNER*LEAF_SIZE,0); |
|
| 86 |
MeshQuad leafMesh = new MeshQuad(); |
|
| 87 |
leafMesh.setStretch(LEAF_SIZE,LEAF_SIZE,0); |
|
| 88 |
|
|
| 82 | 89 |
mMove = new Static3D(0,0,0); |
| 83 | 90 |
mScale= new Static3D(1,1,1); |
| 84 | 91 |
|
| 85 |
DistortedEffects rootEffects = new DistortedEffects(mScreenW,mScreenH,0);
|
|
| 86 |
DistortedEffects innerEffects = new DistortedEffects(INNER*LEAF_SIZE,INNER*LEAF_SIZE,0);
|
|
| 92 |
DistortedEffects rootEffects = new DistortedEffects(); |
|
| 93 |
DistortedEffects innerEffects = new DistortedEffects(); |
|
| 87 | 94 |
DistortedEffects[] innerLeafEffects= new DistortedEffects[NUM_LEAVES]; |
| 88 | 95 |
DistortedEffects[] outerLeafEffects= new DistortedEffects[NUM_LEAVES]; |
| 89 | 96 |
|
| 90 |
DistortedNode root = new DistortedNode(new DistortedTexture(), rootEffects, mesh);
|
|
| 97 |
DistortedNode root = new DistortedNode(new DistortedTexture(), rootEffects, rootMesh);
|
|
| 91 | 98 |
|
| 92 | 99 |
rootEffects.apply(new MatrixEffectScale(mScale)); |
| 93 | 100 |
rootEffects.apply(new MatrixEffectMove(mMove)); |
| ... | ... | |
| 107 | 114 |
|
| 108 | 115 |
for(int j=0; j<NUM_LEAVES; j++) |
| 109 | 116 |
{
|
| 110 |
outerLeafEffects[j] = new DistortedEffects(LEAF_SIZE,LEAF_SIZE,0);
|
|
| 117 |
outerLeafEffects[j] = new DistortedEffects(); |
|
| 111 | 118 |
outerLeafEffects[j].apply(new MatrixEffectMove(outerMoveVector)); |
| 112 | 119 |
outerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, outerCenter) ); |
| 113 | 120 |
|
| 114 |
root.attach(mLeaf, outerLeafEffects[j], mesh);
|
|
| 121 |
root.attach(mLeaf, outerLeafEffects[j], leafMesh);
|
|
| 115 | 122 |
} |
| 116 | 123 |
|
| 117 | 124 |
innerEffects.apply( new MatrixEffectRotate(rotate, axis, innerCenter) ); |
| ... | ... | |
| 119 | 126 |
innerEffects.apply( new FragmentEffectChroma(new Static1D(0.5f), new Static3D(1,0,0) ) ); |
| 120 | 127 |
innerEffects.apply(blurEffect); |
| 121 | 128 |
|
| 122 |
DistortedNode innerNode = new DistortedNode( new DistortedTexture(), innerEffects, mesh);
|
|
| 129 |
DistortedNode innerNode = new DistortedNode( new DistortedTexture(), innerEffects, innerMesh);
|
|
| 123 | 130 |
root.attach(innerNode); |
| 124 | 131 |
|
| 125 | 132 |
for(int j=0; j<NUM_LEAVES; j++) |
| 126 | 133 |
{
|
| 127 |
innerLeafEffects[j] = new DistortedEffects(LEAF_SIZE,LEAF_SIZE,0);
|
|
| 134 |
innerLeafEffects[j] = new DistortedEffects(); |
|
| 128 | 135 |
innerLeafEffects[j].apply(new MatrixEffectMove(innerMoveVector)); |
| 129 | 136 |
innerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, innerCenter) ); |
| 130 | 137 |
|
| 131 |
innerNode.attach( mLeaf, innerLeafEffects[j], mesh );
|
|
| 138 |
innerNode.attach( mLeaf, innerLeafEffects[j], leafMesh );
|
|
| 132 | 139 |
} |
| 133 | 140 |
|
| 134 | 141 |
mScreen = new DistortedScreen(); |
| src/main/java/org/distorted/examples/projection/ProjectionRenderer.java | ||
|---|---|---|
| 56 | 56 |
ProjectionRenderer(GLSurfaceView view) |
| 57 | 57 |
{
|
| 58 | 58 |
mView = view; |
| 59 |
mEffects= new DistortedEffects(1);
|
|
| 59 |
mEffects= new DistortedEffects(); |
|
| 60 | 60 |
mScreen = new DistortedScreen(); |
| 61 | 61 |
|
| 62 | 62 |
mVector = new Static3D(0,0,0); |
| ... | ... | |
| 130 | 130 |
mPoint3.set( width/4, 3*height/4, 0); |
| 131 | 131 |
mPoint4.set(3*width/4, 3*height/4, 0); |
| 132 | 132 |
|
| 133 |
mEffects.setStretch(width,height,0); |
|
| 134 |
|
|
| 135 | 133 |
// Avoid memory leaks: delete old texture if it exists (it might if we |
| 136 | 134 |
// got here after a brief amount of time spent in the background) |
| 137 | 135 |
if( mTexture!=null ) mTexture.markForDeletion(); |
| ... | ... | |
| 140 | 138 |
mTexture.setTexture(bmp); |
| 141 | 139 |
|
| 142 | 140 |
// likewise with the Mesh |
| 143 |
if( mMesh!=null ) mMesh.markForDeletion(); |
|
| 144 |
|
|
| 141 |
if( mMesh!=null ) mMesh.markForDeletion(); |
|
| 145 | 142 |
mMesh = new MeshRectangles(100,100*height/width); |
| 143 |
mMesh.setStretch(width,height,0); |
|
| 146 | 144 |
|
| 147 | 145 |
mScreen.detachAll(); |
| 148 | 146 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java | ||
|---|---|---|
| 63 | 63 |
mView = v; |
| 64 | 64 |
mTexture = new DistortedTexture(); |
| 65 | 65 |
|
| 66 |
DistortedEffects effects = new DistortedEffects(1);
|
|
| 66 |
DistortedEffects effects = new DistortedEffects(); |
|
| 67 | 67 |
DynamicQuat rot = new DynamicQuat(); |
| 68 | 68 |
|
| 69 | 69 |
Random rnd = new Random(System.currentTimeMillis()); |
| src/main/java/org/distorted/examples/rubik/RubikCube.java | ||
|---|---|---|
| 130 | 130 |
tmpBottom= (y== 0 ? mapBottom:mapBlack); |
| 131 | 131 |
|
| 132 | 132 |
mCubes[x][y][z] = new MeshCubes(vertices,vertices,vertices, tmpFront, tmpBack, tmpLeft, tmpRight, tmpTop, tmpBottom); |
| 133 |
mCubes[x][y][z].setStretch(STRETCH_SIZE,STRETCH_SIZE,STRETCH_SIZE); |
|
| 134 |
|
|
| 133 | 135 |
cubeVectors[x][y][z] = new Static3D( STRETCH_SIZE*(x-nc), STRETCH_SIZE*(y-nc), STRETCH_SIZE*(z-nc) ); |
| 134 | 136 |
mRotationAngle[x][y][z] = new Dynamic1D(); |
| 135 | 137 |
mRotationAxis[x][y][z] = new Static3D(1,0,0); |
| ... | ... | |
| 138 | 140 |
mRotationAngle[x][y][z].add(new Static1D(0.0f)); |
| 139 | 141 |
mRotate[x][y][z] = new MatrixEffectRotate( mRotationAngle[x][y][z], mRotationAxis[x][y][z], center); |
| 140 | 142 |
|
| 141 |
mEffects[x][y][z] = new DistortedEffects(STRETCH_SIZE,STRETCH_SIZE,STRETCH_SIZE);
|
|
| 143 |
mEffects[x][y][z] = new DistortedEffects(); |
|
| 142 | 144 |
mEffects[x][y][z].apply( new MatrixEffectMove(cubeVectors[x][y][z]) ); |
| 143 | 145 |
mEffects[x][y][z].apply( mRotate[x][y][z] ); |
| 144 | 146 |
mEffects[x][y][z].apply(quatEffect); |
| src/main/java/org/distorted/examples/save/SaveRenderer.java | ||
|---|---|---|
| 93 | 93 |
mMove = new Static3D(0,0,0); |
| 94 | 94 |
mScaleMain = new Static3D(1,1,1); |
| 95 | 95 |
|
| 96 |
mEffects = new DistortedEffects(1);
|
|
| 96 |
mEffects = new DistortedEffects(); |
|
| 97 | 97 |
mEffects.apply( new VertexEffectSink(diSink, pLeft , sinkRegion) ); |
| 98 | 98 |
mEffects.apply( new VertexEffectSink(diSink, pRight, sinkRegion) ); |
| 99 | 99 |
mEffects.apply( new MatrixEffectScale(mScaleMain)); |
| ... | ... | |
| 245 | 245 |
bmpHeight = bitmap.getHeight(); |
| 246 | 246 |
bmpWidth = bitmap.getWidth(); |
| 247 | 247 |
|
| 248 |
mEffects.setStretch(bmpWidth,bmpHeight,0); |
|
| 249 |
|
|
| 250 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 248 |
if( mMesh==null ) |
|
| 249 |
{
|
|
| 250 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 251 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 252 |
} |
|
| 251 | 253 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 252 | 254 |
mTexture.setTexture(bitmap); |
| 253 | 255 |
|
| src/main/java/org/distorted/examples/sink/SinkRenderer.java | ||
|---|---|---|
| 65 | 65 |
sink.add(new Static1D(1.0f)); |
| 66 | 66 |
sink.add(new Static1D(0.2f)); |
| 67 | 67 |
|
| 68 |
mEffects = new DistortedEffects(1);
|
|
| 68 |
mEffects = new DistortedEffects(); |
|
| 69 | 69 |
VertexEffectSink sinkEffect = new VertexEffectSink(sink, new Static3D(297, 280, 0), null); |
| 70 | 70 |
mEffects.apply(sinkEffect); |
| 71 | 71 |
|
| ... | ... | |
| 129 | 129 |
bmpHeight = bitmap.getHeight(); |
| 130 | 130 |
bmpWidth = bitmap.getWidth(); |
| 131 | 131 |
|
| 132 |
mEffects.setStretch(bmpWidth,bmpHeight,0); |
|
| 133 |
|
|
| 134 | 132 |
if( mTexture==null ) mTexture = new DistortedTexture(); |
| 135 | 133 |
mTexture.setTexture(bitmap); |
| 136 |
if( mMesh==null ) mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 134 |
if( mMesh==null ) |
|
| 135 |
{
|
|
| 136 |
mMesh = new MeshRectangles(30,30*bmpHeight/bmpWidth); |
|
| 137 |
mMesh.setStretch(bmpWidth,bmpHeight,0); |
|
| 138 |
} |
|
| 139 |
|
|
| 137 | 140 |
|
| 138 | 141 |
mScreen.detachAll(); |
| 139 | 142 |
mScreen.attach(mTexture,mEffects,mMesh); |
| src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java | ||
|---|---|---|
| 34 | 34 |
import org.distorted.library.effect.MatrixEffectScale; |
| 35 | 35 |
import org.distorted.library.main.DistortedNode; |
| 36 | 36 |
import org.distorted.library.main.DistortedScreen; |
| 37 |
import org.distorted.library.mesh.MeshRectangles;
|
|
| 37 |
import org.distorted.library.mesh.MeshQuad;
|
|
| 38 | 38 |
import org.distorted.library.type.Dynamic1D; |
| 39 | 39 |
import org.distorted.library.type.Dynamic3D; |
| 40 | 40 |
import org.distorted.library.type.Static1D; |
| ... | ... | |
| 110 | 110 |
private DistortedEffects[] mStarEffects; |
| 111 | 111 |
private DistortedNode mBackground; |
| 112 | 112 |
private DistortedScreen mScreen; |
| 113 |
private MeshRectangles mQuad;
|
|
| 113 |
private MeshQuad mGFFAQuad, mCrawlQuad, mCrawlBackgroundQuad, mLogoQuad, mStarQuad;
|
|
| 114 | 114 |
|
| 115 | 115 |
private long alphaEffectID, scaleEffectID, moveEffectID; |
| 116 | 116 |
private Random mRnd = new Random(0); |
| ... | ... | |
| 122 | 122 |
{
|
| 123 | 123 |
mView = v; |
| 124 | 124 |
|
| 125 |
mQuad = new MeshRectangles(1,1); |
|
| 125 |
mGFFAQuad = new MeshQuad(); |
|
| 126 |
mStarQuad = new MeshQuad(); |
|
| 127 |
mCrawlQuad = new MeshQuad(); |
|
| 128 |
mCrawlBackgroundQuad = new MeshQuad(); |
|
| 129 |
mLogoQuad = new MeshQuad(); |
|
| 126 | 130 |
|
| 127 |
mGFFAEffects = new DistortedEffects(1); |
|
| 128 |
mLogoEffects = new DistortedEffects(1); |
|
| 129 |
mCrawlEffects = new DistortedEffects(1); |
|
| 130 |
mCrawlBackgroundEffects = new DistortedEffects(1); |
|
| 131 |
mGFFAQuad.setStretch(GFFA_WIDTH,GFFA_HEIGHT,0); |
|
| 132 |
mCrawlQuad.setStretch(CRAWL_WIDTH,CRAWL_HEIGHT,0); |
|
| 133 |
|
|
| 134 |
mGFFAEffects = new DistortedEffects(); |
|
| 135 |
mLogoEffects = new DistortedEffects(); |
|
| 136 |
mCrawlEffects = new DistortedEffects(); |
|
| 137 |
mCrawlBackgroundEffects = new DistortedEffects(); |
|
| 131 | 138 |
|
| 132 | 139 |
if( NUM_STARS>0 ) |
| 133 | 140 |
{
|
| 134 | 141 |
mStarEffects = new DistortedEffects[NUM_STARS]; |
| 135 |
mStarEffects[0] = new DistortedEffects(1);
|
|
| 142 |
mStarEffects[0] = new DistortedEffects(); |
|
| 136 | 143 |
|
| 137 | 144 |
for (int i = 1; i < NUM_STARS; i++) |
| 138 | 145 |
mStarEffects[i] = new DistortedEffects(mStarEffects[0], DistortedLibrary.CLONE_VERTEX); |
| ... | ... | |
| 207 | 214 |
if( mCrawlBackgroundTexture!=null ) mCrawlBackgroundTexture.markForDeletion(); |
| 208 | 215 |
mCrawlBackgroundTexture = new DistortedTexture(); |
| 209 | 216 |
|
| 210 |
mCrawlBackgroundEffects.setStretch(w,(int)(h*Math.sin(angleA)/Math.sin(angleB)),0);
|
|
| 217 |
mCrawlBackgroundQuad.setStretch(w,(int)(h*Math.sin(angleA)/Math.sin(angleB)),0);
|
|
| 211 | 218 |
|
| 212 | 219 |
int randomA, randomX, randomY, randomTime; |
| 213 | 220 |
float randomS, randomAlpha1, randomAlpha2; |
| ... | ... | |
| 237 | 244 |
|
| 238 | 245 |
mStarEffects[i].apply( new FragmentEffectAlpha(di) ); |
| 239 | 246 |
|
| 240 |
mScreen.attach(mStarTexture, mStarEffects[i], mQuad); |
|
| 247 |
mScreen.attach(mStarTexture, mStarEffects[i], mStarQuad);
|
|
| 241 | 248 |
} |
| 242 | 249 |
|
| 243 |
float scale = (0.5f*w/mGFFAEffects.getStartchX());
|
|
| 250 |
float scale = (0.5f*w/mGFFAQuad.getStretchX());
|
|
| 244 | 251 |
|
| 245 | 252 |
Dynamic1D di = new Dynamic1D(6000,0.5f); |
| 246 | 253 |
di.add(new Static1D(1.0f)); |
| ... | ... | |
| 255 | 262 |
mGFFAEffects.apply( new MatrixEffectMove(new Static3D(w/5,2*h/3,0)) ); |
| 256 | 263 |
mGFFAEffects.apply( alpha ); |
| 257 | 264 |
|
| 258 |
mScreen.attach(mGFFATexture, mGFFAEffects, mQuad); |
|
| 265 |
mScreen.attach(mGFFATexture, mGFFAEffects, mGFFAQuad);
|
|
| 259 | 266 |
} |
| 260 | 267 |
|
| 261 | 268 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 292 | 299 |
paint.setTypeface(tf); |
| 293 | 300 |
|
| 294 | 301 |
///// create GFFA /////////////////// |
| 295 |
mGFFAEffects.setStretch(GFFA_WIDTH,GFFA_HEIGHT,0); |
|
| 296 | 302 |
if( mGFFATexture==null ) mGFFATexture = new DistortedTexture(); |
| 297 | 303 |
bitmapGFFA = Bitmap.createBitmap(GFFA_WIDTH,GFFA_HEIGHT,Bitmap.Config.ARGB_8888); |
| 298 | 304 |
bitmapGFFA.eraseColor(0x00000000); |
| ... | ... | |
| 306 | 312 |
mGFFATexture.setTexture(bitmapGFFA); |
| 307 | 313 |
|
| 308 | 314 |
///// create Logo /////////////////// |
| 309 |
mLogoEffects.setStretch(bitmapLogo.getWidth(),bitmapLogo.getHeight(),0);
|
|
| 315 |
mLogoQuad.setStretch(bitmapLogo.getWidth(),bitmapLogo.getHeight(),0);
|
|
| 310 | 316 |
if( mLogoTexture==null ) mLogoTexture = new DistortedTexture(); |
| 311 | 317 |
mLogoTexture.setTexture(bitmapLogo); |
| 312 | 318 |
|
| 313 | 319 |
///// create CRAWL ////////////////// |
| 314 |
mCrawlEffects.setStretch(CRAWL_WIDTH,CRAWL_HEIGHT,0); |
|
| 315 | 320 |
if( mCrawlTexture==null ) mCrawlTexture = new DistortedTexture(); |
| 316 | 321 |
bitmapText = Bitmap.createBitmap(CRAWL_WIDTH,CRAWL_HEIGHT,Bitmap.Config.ARGB_8888); |
| 317 | 322 |
bitmapText.eraseColor(0x00000000); |
| ... | ... | |
| 326 | 331 |
mCrawlTexture.setTexture(bitmapText); |
| 327 | 332 |
|
| 328 | 333 |
///// create Stars /////////////////// |
| 329 |
mStarEffects[0].setStretch(bitmapStar.getWidth(),bitmapStar.getHeight(),0);
|
|
| 334 |
mStarQuad.setStretch(bitmapStar.getWidth(),bitmapStar.getHeight(),0);
|
|
| 330 | 335 |
if( mStarTexture==null ) mStarTexture = new DistortedTexture(); |
| 331 | 336 |
mStarTexture.setTexture(bitmapStar); |
| 332 | 337 |
} |
| ... | ... | |
| 385 | 390 |
int screenW=mScreen.getWidth(); |
| 386 | 391 |
int screenH=mScreen.getHeight(); |
| 387 | 392 |
|
| 388 |
int logoW = mLogoEffects.getStartchX();
|
|
| 389 |
int logoH = mLogoEffects.getStartchY();
|
|
| 393 |
float logoW = mLogoQuad.getStretchX();
|
|
| 394 |
float logoH = mLogoQuad.getStretchY();
|
|
| 390 | 395 |
|
| 391 | 396 |
int initSize= (int)(3.0f*screenW/logoW); |
| 392 | 397 |
int finaSize= (int)(0.1f*screenW/logoW); |
| ... | ... | |
| 402 | 407 |
mLogoEffects.apply( scale ); |
| 403 | 408 |
mLogoEffects.apply( new MatrixEffectMove(new Static3D(screenW/2,screenH/2,0)) ); |
| 404 | 409 |
|
| 405 |
mScreen.attach(mLogoTexture, mLogoEffects,mQuad);
|
|
| 410 |
mScreen.attach(mLogoTexture, mLogoEffects, mLogoQuad);
|
|
| 406 | 411 |
} |
| 407 | 412 |
else if( effectID == scaleEffectID ) |
| 408 | 413 |
{
|
| 409 | 414 |
mScreen.detach(mLogoEffects); |
| 410 | 415 |
mLogoTexture.markForDeletion(); |
| 411 | 416 |
|
| 412 |
int crawlW = mCrawlEffects.getStartchX();
|
|
| 413 |
int crawlH = mCrawlEffects.getStartchY();
|
|
| 414 |
int screenW= mScreen.getWidth();
|
|
| 415 |
int backH = mCrawlBackgroundEffects.getStartchY();
|
|
| 416 |
float scale= (float)screenW/crawlW;
|
|
| 417 |
float crawlW = mCrawlQuad.getStretchX();
|
|
| 418 |
float crawlH = mCrawlQuad.getStretchY();
|
|
| 419 |
float screenW= mScreen.getWidth();
|
|
| 420 |
float backH = mCrawlBackgroundQuad.getStretchY();
|
|
| 421 |
float scale = screenW/crawlW;
|
|
| 417 | 422 |
|
| 418 | 423 |
mCrawlBackgroundEffects.apply( new MatrixEffectRotate(new Static1D(CRAWL_ANGLE), new Static3D(1,0,0), new Static3D(screenW/2,0,0)) ); |
| 419 | 424 |
|
| ... | ... | |
| 433 | 438 |
mCrawlEffects.apply( new MatrixEffectScale(new Static3D(scale,scale,scale)) ); |
| 434 | 439 |
mCrawlEffects.apply( move ); |
| 435 | 440 |
|
| 436 |
mBackground = mScreen.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects,mQuad);
|
|
| 437 |
mBackground.attach(mCrawlTexture, mCrawlEffects,mQuad);
|
|
| 441 |
mBackground = mScreen.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects, mCrawlBackgroundQuad);
|
|
| 442 |
mBackground.attach(mCrawlTexture, mCrawlEffects, mCrawlQuad);
|
|
| 438 | 443 |
mBackground.glDisable(GLES31.GL_DEPTH_TEST); |
Also available in: Unified diff
Move the Effects.setStretch to Meshbase.setStretch