Revision 5f2a53b6
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java | ||
---|---|---|
21 | 21 |
|
22 | 22 |
import android.graphics.Bitmap; |
23 | 23 |
import android.graphics.BitmapFactory; |
24 |
import android.opengl.GLES30; |
|
25 | 24 |
import android.opengl.GLSurfaceView; |
26 | 25 |
|
27 | 26 |
import org.distorted.examples.R; |
... | ... | |
48 | 47 |
private DistortedEffects mEffects; |
49 | 48 |
private DistortedTexture mTexture; |
50 | 49 |
private DistortedScreen mScreen; |
50 |
private MeshFlat mMesh; |
|
51 | 51 |
private AroundTheWorldEffectsManager mManager; |
52 | 52 |
private int mObjWidth, mObjHeight; |
53 | 53 |
|
... | ... | |
130 | 130 |
if( mTexture==null ) mTexture = new DistortedTexture(mObjWidth,mObjHeight); |
131 | 131 |
mTexture.setTexture(bitmap); |
132 | 132 |
|
133 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*mObjHeight/mObjWidth); |
|
134 |
|
|
133 | 135 |
mScreen.detachAll(); |
134 |
mScreen.attach(mTexture, mEffects, new MeshFlat(30,30*mObjHeight/mObjWidth));
|
|
136 |
mScreen.attach(mTexture, mEffects, mMesh);
|
|
135 | 137 |
|
136 | 138 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
137 | 139 |
DistortedEffects.enableEffect(EffectNames.SINK); |
src/main/java/org/distorted/examples/bean/BeanRenderer.java | ||
---|---|---|
50 | 50 |
private DistortedEffects mEffects; |
51 | 51 |
private DistortedScreen mScreen; |
52 | 52 |
private DistortedTexture mTexture; |
53 |
private MeshFlat mMesh; |
|
53 | 54 |
private int bmpHeight, bmpWidth; |
54 | 55 |
|
55 | 56 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
149 | 150 |
|
150 | 151 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
151 | 152 |
mTexture.setTexture(bitmap); |
152 |
|
|
153 |
if( mMesh==null ) mMesh = new MeshFlat(25,25*bmpHeight/bmpWidth); |
|
153 | 154 |
mScreen.detachAll(); |
154 |
mScreen.attach(mTexture,mEffects,new MeshFlat(25,25*bmpHeight/bmpWidth));
|
|
155 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
155 | 156 |
|
156 | 157 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
157 | 158 |
|
src/main/java/org/distorted/examples/check/CheckRenderer.java | ||
---|---|---|
59 | 59 |
private GLSurfaceView mView; |
60 | 60 |
private DistortedEffects mEffects; |
61 | 61 |
private DistortedTexture mTexture; |
62 |
private MeshFlat mMesh; |
|
62 | 63 |
private DistortedScreen mScreen; |
63 | 64 |
private int bmpHeight, bmpWidth; |
64 | 65 |
|
... | ... | |
136 | 137 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
137 | 138 |
mTexture.setTexture(bitmap); |
138 | 139 |
|
140 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth); |
|
141 |
|
|
139 | 142 |
mScreen.detachAll(); |
140 |
mScreen.attach(mTexture,mEffects,new MeshFlat(30,30*bmpHeight/bmpWidth));
|
|
143 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
141 | 144 |
|
142 | 145 |
mEffects.abortEffects(EffectTypes.VERTEX); |
143 | 146 |
mEffects.abortEffects(EffectTypes.FRAGMENT); |
src/main/java/org/distorted/examples/deform/DeformRenderer.java | ||
---|---|---|
211 | 211 |
int w=width/2; |
212 | 212 |
int h=height/2; |
213 | 213 |
|
214 |
if( stretchMesh!=null ) stretchMesh.markForDeletion(); |
|
215 |
|
|
214 | 216 |
stretchMesh = new MeshFlat(50,50*h/w); |
215 | 217 |
Bitmap stretchBitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888); |
216 | 218 |
stretchCanvas = new Canvas(stretchBitmap); |
src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java | ||
---|---|---|
52 | 52 |
private GLSurfaceView mView; |
53 | 53 |
private DistortedEffects[] mEffects; |
54 | 54 |
private DistortedTexture[] mTexture; |
55 |
private MeshFlat mMesh; |
|
55 | 56 |
private DistortedScreen mScreen; |
56 | 57 |
private int bmpHeight, bmpWidth; |
57 | 58 |
|
... | ... | |
169 | 170 |
mTexture[1].setTexture(bitmap1); |
170 | 171 |
mTexture[2].setTexture(bitmap2); |
171 | 172 |
|
172 |
MeshFlat mesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
173 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
173 | 174 |
|
174 | 175 |
mScreen.detachAll(); |
175 |
for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture[i], mEffects[i], mesh); |
|
176 |
for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture[i], mEffects[i], mMesh);
|
|
176 | 177 |
|
177 | 178 |
DistortedEffects.enableEffect(EffectNames.SINK); |
178 | 179 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java | ||
---|---|---|
53 | 53 |
private GLSurfaceView mView; |
54 | 54 |
private DistortedEffects[] mEffects; |
55 | 55 |
private DistortedTexture mTexture; |
56 |
private MeshFlat mMesh; |
|
56 | 57 |
private DistortedScreen mScreen; |
57 | 58 |
private int bmpHeight, bmpWidth; |
58 | 59 |
|
... | ... | |
162 | 163 |
bmpHeight = bitmap.getHeight(); |
163 | 164 |
bmpWidth = bitmap.getWidth(); |
164 | 165 |
|
165 |
MeshFlat mesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
166 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
166 | 167 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
167 | 168 |
mTexture.setTexture(bitmap); |
168 | 169 |
|
169 | 170 |
mScreen.detachAll(); |
170 |
for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture, mEffects[i], mesh); |
|
171 |
for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture, mEffects[i], mMesh);
|
|
171 | 172 |
|
172 | 173 |
DistortedEffects.enableEffect(EffectNames.SINK); |
173 | 174 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
src/main/java/org/distorted/examples/fbo/FBORenderer.java | ||
---|---|---|
56 | 56 |
private DistortedTexture mLisaTexture, mGridTexture; |
57 | 57 |
private DistortedScreen mScreen; |
58 | 58 |
private DistortedNode mRoot; |
59 |
private MeshFlat mMeshFlat; |
|
60 |
private MeshCubes mMeshCubes; |
|
59 | 61 |
private int lisaHeight, lisaWidth; |
60 | 62 |
private boolean mDepth; |
61 | 63 |
|
... | ... | |
166 | 168 |
|
167 | 169 |
mEffects.abortAllEffects(); |
168 | 170 |
|
169 |
mRoot = new DistortedNode(mLisaTexture, mEffects,new MeshFlat(1,1)); |
|
170 |
mRoot.attach(mGridTexture,gridEffects,new MeshCubes(10,10,false)); |
|
171 |
if( mMeshFlat==null ) mMeshFlat = new MeshFlat(1,1); |
|
172 |
if( mMeshCubes==null) mMeshCubes= new MeshCubes(10,10,false); |
|
173 |
|
|
174 |
mRoot = new DistortedNode(mLisaTexture, mEffects, mMeshFlat); |
|
175 |
mRoot.attach(mGridTexture,gridEffects,mMeshCubes); |
|
171 | 176 |
|
172 | 177 |
setDepthPriv(); |
173 | 178 |
|
src/main/java/org/distorted/examples/girl/GirlRenderer.java | ||
---|---|---|
52 | 52 |
private DistortedEffects mEffects; |
53 | 53 |
private DistortedScreen mScreen; |
54 | 54 |
private DistortedTexture mTexture; |
55 |
private MeshFlat mMesh; |
|
55 | 56 |
private Static3D v0,v1,v2,v3; |
56 | 57 |
private Static1D dBegin, dMiddle, dEnd, s0; |
57 | 58 |
private int bmpHeight, bmpWidth; |
... | ... | |
207 | 208 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
208 | 209 |
mTexture.setTexture(bitmap); |
209 | 210 |
|
211 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth); |
|
212 |
|
|
210 | 213 |
mScreen.detachAll(); |
211 |
mScreen.attach(mTexture,mEffects,new MeshFlat(30,30*bmpHeight/bmpWidth));
|
|
214 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
212 | 215 |
|
213 | 216 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
214 | 217 |
DistortedEffects.enableEffect(EffectNames.SINK); |
src/main/java/org/distorted/examples/listener/ListenerRenderer.java | ||
---|---|---|
55 | 55 |
private DistortedEffects mEffects; |
56 | 56 |
private DistortedScreen mScreen; |
57 | 57 |
private DistortedTexture mTexture; |
58 |
private MeshFlat mMesh; |
|
58 | 59 |
private int bmpHeight, bmpWidth; |
59 | 60 |
private Random mRnd; |
60 | 61 |
|
... | ... | |
158 | 159 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
159 | 160 |
mTexture.setTexture(bitmap); |
160 | 161 |
|
162 |
if( mMesh==null ) mMesh = new MeshFlat(50,50*bmpHeight/bmpWidth); |
|
163 |
|
|
161 | 164 |
mScreen.detachAll(); |
162 |
mScreen.attach(mTexture,mEffects,new MeshFlat(50,50*bmpHeight/bmpWidth));
|
|
165 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
163 | 166 |
|
164 | 167 |
for(int i=0; i<NUM_BUBBLES; i++) randomizeNewBubble(); |
165 | 168 |
|
src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java | ||
---|---|---|
48 | 48 |
private GLSurfaceView mView; |
49 | 49 |
private DistortedEffects mEffects; |
50 | 50 |
private DistortedTexture mTexture; |
51 |
private MeshFlat mMesh; |
|
51 | 52 |
private DistortedScreen mScreen; |
52 | 53 |
private int bmpHeight, bmpWidth; |
53 | 54 |
|
... | ... | |
135 | 136 |
// Do not leak memory by creating it the second time around. |
136 | 137 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
137 | 138 |
|
139 |
// likewise the Mesh |
|
140 |
if( mMesh==null ) mMesh = new MeshFlat(9,9*bmpHeight/bmpWidth); |
|
141 |
|
|
138 | 142 |
// even if mTexture wasn't null, we still need to call setTexture() on it |
139 | 143 |
// because every time activity goes to background, its OpenGL resources |
140 | 144 |
// - including Textures - get deleted. We always need to call setTexture() |
... | ... | |
142 | 146 |
mTexture.setTexture(bitmap); |
143 | 147 |
|
144 | 148 |
mScreen.detachAll(); |
145 |
mScreen.attach(mTexture,mEffects,new MeshFlat(9,9*bmpHeight/bmpWidth));
|
|
149 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
146 | 150 |
|
147 | 151 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
148 | 152 |
|
src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java | ||
---|---|---|
48 | 48 |
private DistortedEffects mEffects; |
49 | 49 |
private DistortedTexture mTexture; |
50 | 50 |
private DistortedScreen mScreen; |
51 |
private MeshFlat mMesh; |
|
51 | 52 |
private boolean mRefresh; |
52 | 53 |
|
53 | 54 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
136 | 137 |
mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888); |
137 | 138 |
mCanvas = new Canvas(mBitmap); |
138 | 139 |
|
140 |
if( mMesh!=null ) mMesh.markForDeletion(); |
|
141 |
mMesh = new MeshFlat(80,80*texH/texW); |
|
142 |
|
|
139 | 143 |
mScreen.detachAll(); |
140 |
mScreen.attach(mTexture,mEffects,new MeshFlat(80,80*texH/texW));
|
|
144 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
141 | 145 |
mScreen.resize(texW, texH); |
142 | 146 |
mView.onSurfaceChanged(texW,texH); |
143 | 147 |
|
src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java | ||
---|---|---|
65 | 65 |
|
66 | 66 |
private DistortedEffects mEffects; |
67 | 67 |
private DistortedTexture mTexture; |
68 |
private MeshFlat mMesh; |
|
68 | 69 |
private DistortedScreen mScreen; |
69 | 70 |
private int bmpHeight, bmpWidth; |
70 | 71 |
private SurfaceView mView; |
... | ... | |
259 | 260 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
260 | 261 |
mTexture.setTexture(bmp); |
261 | 262 |
|
263 |
if( mMesh==null ) mMesh = new MeshFlat(9,9*bmpHeight/bmpWidth); |
|
264 |
|
|
262 | 265 |
mScreen.detachAll(); |
263 |
mScreen.attach(mTexture,mEffects,new MeshFlat(9,9*bmpHeight/bmpWidth));
|
|
266 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
264 | 267 |
|
265 | 268 |
DistortedEffects.enableEffect(EffectNames.DISTORT); |
266 | 269 |
|
src/main/java/org/distorted/examples/projection/ProjectionRenderer.java | ||
---|---|---|
44 | 44 |
private GLSurfaceView mView; |
45 | 45 |
private DistortedEffects mEffects; |
46 | 46 |
private DistortedScreen mScreen; |
47 |
private MeshFlat mMesh; |
|
47 | 48 |
private DistortedTexture mTexture; |
48 | 49 |
private float mF, mNear; |
49 | 50 |
|
... | ... | |
122 | 123 |
mTexture= new DistortedTexture(width,height); |
123 | 124 |
mTexture.setTexture(bmp); |
124 | 125 |
|
126 |
// likewise with the Mesh |
|
127 |
if( mMesh!=null ) mMesh.markForDeletion(); |
|
128 |
|
|
129 |
mMesh = new MeshFlat(50,50*height/width); |
|
130 |
|
|
125 | 131 |
mScreen.detachAll(); |
126 |
mScreen.attach(mTexture,mEffects,new MeshFlat(50,50*height/width));
|
|
132 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
127 | 133 |
mScreen.resize(width, height); |
128 | 134 |
} |
129 | 135 |
|
src/main/java/org/distorted/examples/save/SaveRenderer.java | ||
---|---|---|
58 | 58 |
private DistortedEffects mEffects; |
59 | 59 |
private DistortedFramebuffer mOffscreen; |
60 | 60 |
private DistortedTexture mTexture; |
61 |
private MeshFlat mMesh; |
|
61 | 62 |
private DistortedScreen mScreen; |
62 | 63 |
private Static1D s0; |
63 | 64 |
private Dynamic3D mScaleDyn; |
... | ... | |
242 | 243 |
bmpHeight = bitmap.getHeight(); |
243 | 244 |
bmpWidth = bitmap.getWidth(); |
244 | 245 |
|
245 |
MeshFlat mesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
246 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
246 | 247 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
247 | 248 |
mTexture.setTexture(bitmap); |
248 | 249 |
|
249 | 250 |
if( mOffscreen==null ) mOffscreen = new DistortedFramebuffer( (int)(mScale*bmpWidth) , (int)(mScale*bmpHeight) ); |
250 | 251 |
|
251 | 252 |
mOffscreen.detachAll(); |
252 |
mOffscreen.attach(mTexture,mEffects,mesh); |
|
253 |
mOffscreen.attach(mTexture,mEffects,mMesh);
|
|
253 | 254 |
mScreen.detachAll(); |
254 |
mScreen.attach(mTexture,mEffects,mesh); |
|
255 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
255 | 256 |
|
256 | 257 |
DistortedEffects.enableEffect(EffectNames.SINK); |
257 | 258 |
|
src/main/java/org/distorted/examples/sink/SinkRenderer.java | ||
---|---|---|
50 | 50 |
private DistortedEffects mEffects; |
51 | 51 |
private DistortedScreen mScreen; |
52 | 52 |
private DistortedTexture mTexture; |
53 |
private MeshFlat mMesh; |
|
53 | 54 |
private int bmpHeight, bmpWidth; |
54 | 55 |
|
55 | 56 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
126 | 127 |
|
127 | 128 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight); |
128 | 129 |
mTexture.setTexture(bitmap); |
130 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth); |
|
129 | 131 |
|
130 | 132 |
mScreen.detachAll(); |
131 |
mScreen.attach(mTexture,mEffects,new MeshFlat(30,30*bmpHeight/bmpWidth));
|
|
133 |
mScreen.attach(mTexture,mEffects,mMesh);
|
|
132 | 134 |
|
133 | 135 |
DistortedEffects.enableEffect(EffectNames.SINK); |
134 | 136 |
|
Also available in: Unified diff
Progress with VBOs - this time abstract out a new class, DistortedObject - i.e. everything that uploads something to GPU and thus needs to be auto re-created upon loss of the context.