Revision 9c5b5cb6
Added by Leszek Koltunski almost 8 years ago
src/main/java/org/distorted/examples/check/CheckRenderer.java | ||
---|---|---|
12 | 12 |
import org.distorted.library.Distorted; |
13 | 13 |
import org.distorted.library.DistortedBitmap; |
14 | 14 |
import org.distorted.library.EffectTypes; |
15 |
import org.distorted.library.Float1D; |
|
15 | 16 |
import org.distorted.library.Float2D; |
16 | 17 |
import org.distorted.library.Float3D; |
18 |
import org.distorted.library.Float4D; |
|
19 |
import org.distorted.library.Interpolator1D; |
|
20 |
import org.distorted.library.Interpolator2D; |
|
17 | 21 |
|
18 | 22 |
import android.app.AlertDialog; |
19 | 23 |
import android.content.Context; |
... | ... | |
29 | 33 |
{ |
30 | 34 |
private GLSurfaceView mView; |
31 | 35 |
private DistortedBitmap mSuccess; |
32 |
private Float2D pUp, pDown; |
|
33 |
private Float3D vUp, vDown; |
|
34 |
|
|
35 | 36 |
private int bmpHeight, bmpWidth; |
36 |
|
|
37 |
|
|
37 | 38 |
public static String compilationResult; |
38 | 39 |
public static String compilationTitle; |
39 |
|
|
40 |
|
|
40 | 41 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
41 | 42 |
|
42 | 43 |
public CheckRenderer(GLSurfaceView view) |
43 | 44 |
{ |
44 | 45 |
mView = view; |
45 |
|
|
46 |
|
|
46 | 47 |
Distorted.setMaxVertex(CheckActivity.getMaxV()); |
47 | 48 |
Distorted.setMaxFragment(CheckActivity.getMaxF()); |
48 | 49 |
} |
... | ... | |
85 | 86 |
{ |
86 | 87 |
InputStream is = mView.getContext().getResources().openRawResource(R.raw.success); |
87 | 88 |
Bitmap bitmap; |
88 |
|
|
89 |
try
|
|
89 |
|
|
90 |
try |
|
90 | 91 |
{ |
91 | 92 |
bitmap = BitmapFactory.decodeStream(is); |
92 | 93 |
} |
... | ... | |
97 | 98 |
is.close(); |
98 | 99 |
} |
99 | 100 |
catch(IOException e) { } |
100 |
} |
|
101 |
|
|
101 |
} |
|
102 |
|
|
103 |
mSuccess = new DistortedBitmap(bitmap, 30); |
|
104 |
|
|
102 | 105 |
bmpHeight = bitmap.getHeight(); |
103 | 106 |
bmpWidth = bitmap.getWidth(); |
104 |
|
|
105 |
pDown = new Float2D(bmpWidth/2, 0); |
|
106 |
pUp = new Float2D(bmpWidth/2,bmpHeight); |
|
107 |
|
|
108 |
vUp = new Float3D( 0,+bmpHeight,0); |
|
109 |
vDown = new Float3D( 0,-bmpHeight,0); |
|
110 |
|
|
111 |
mSuccess = new DistortedBitmap(bitmap, 30); |
|
112 |
mSuccess.deform( vUp, pUp, 2000, 0.0f); |
|
107 |
|
|
108 |
// Try adding 2 Vertex Effects to the Bitmap. |
|
109 |
// This will fail if we have set maxVertexEffects to something < 2. |
|
110 |
// |
|
111 |
// Even if adding some of the Effects fails, the App will still start - you just won't see |
|
112 |
// the effects that failed to add. |
|
113 |
Float2D pDown = new Float2D(bmpWidth/2, 0); |
|
114 |
Float3D vDown = new Float3D( 0,-bmpHeight,0); |
|
115 |
Float4D mRegion = new Float4D( 0, 0, 40 ,40 ); |
|
116 |
|
|
117 |
Interpolator2D mPoint = new Interpolator2D(); |
|
118 |
mPoint.setCount(0.0f); |
|
119 |
mPoint.setDuration(2000); |
|
120 |
mPoint.add(new Float2D( 0, bmpHeight/2)); |
|
121 |
mPoint.add(new Float2D( bmpWidth, bmpHeight/2)); |
|
122 |
|
|
123 |
mSuccess.swirl( 30, mRegion, mPoint ); |
|
113 | 124 |
mSuccess.deform(vDown, pDown, 2000, 0.0f); |
114 |
|
|
125 |
|
|
126 |
// Now try adding 1 Fragment Effect. Likewise, will fail if maxFragmentEffects is <1. |
|
127 |
Float3D color = new Float3D(1,0,0); |
|
128 |
Interpolator1D inter = new Interpolator1D(); |
|
129 |
inter.setCount(0.0f); |
|
130 |
inter.setDuration(2000); |
|
131 |
inter.add(new Float1D(0)); |
|
132 |
inter.add(new Float1D(1)); |
|
133 |
|
|
134 |
mSuccess.chroma(inter, color, null, new Float2D(0,0) ); |
|
135 |
|
|
115 | 136 |
try |
116 | 137 |
{ |
117 | 138 |
Distorted.onSurfaceCreated(mView.getContext()); |
118 | 139 |
} |
119 | 140 |
catch(Exception ex) |
120 | 141 |
{ |
142 |
// We have failed to compile or link shaders - probably too many effects. |
|
143 |
// (each effect adds a certain number of Uniforms to the shader and there |
|
144 |
// can only be a limited number of those ) |
|
145 |
|
|
121 | 146 |
compilationTitle = ex.getClass().getSimpleName(); |
122 | 147 |
compilationResult= ex.getMessage(); |
123 | 148 |
|
Also available in: Unified diff
Improce the 'Check' App.