Revision 37b324c4
Added by Leszek Koltunski almost 7 years ago
src/main/java/org/distorted/examples/check/CheckRenderer.java | ||
---|---|---|
27 | 27 |
|
28 | 28 |
import org.distorted.examples.R; |
29 | 29 |
|
30 |
import org.distorted.library.effect.EffectName; |
|
31 |
import org.distorted.library.effect.FragmentEffectChroma; |
|
32 |
import org.distorted.library.effect.MatrixEffectMove; |
|
33 |
import org.distorted.library.effect.MatrixEffectScale; |
|
34 |
import org.distorted.library.effect.VertexEffectDeform; |
|
35 |
import org.distorted.library.effect.VertexEffectSwirl; |
|
30 | 36 |
import org.distorted.library.main.Distorted; |
31 | 37 |
import org.distorted.library.main.DistortedEffects; |
32 | 38 |
import org.distorted.library.main.DistortedScreen; |
33 | 39 |
import org.distorted.library.main.DistortedTexture; |
34 |
import org.distorted.library.EffectNames; |
|
35 | 40 |
import org.distorted.library.main.MeshFlat; |
36 |
import org.distorted.library.EffectTypes; |
|
37 | 41 |
import org.distorted.library.type.Dynamic3D; |
38 | 42 |
import org.distorted.library.type.Static1D; |
39 | 43 |
import org.distorted.library.type.Static3D; |
... | ... | |
61 | 65 |
private DistortedTexture mTexture; |
62 | 66 |
private MeshFlat mMesh; |
63 | 67 |
private DistortedScreen mScreen; |
64 |
private int bmpHeight, bmpWidth; |
|
68 |
private int mObjHeight, mObjWidth; |
|
69 |
private Static3D mMove, mScale; |
|
70 |
private Static3D mSwirl1, mSwirl2, mDeform1, mDeform2; |
|
65 | 71 |
|
66 | 72 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
67 | 73 |
|
68 | 74 |
CheckRenderer(GLSurfaceView view) |
69 | 75 |
{ |
70 | 76 |
mView = view; |
71 |
mEffects = new DistortedEffects(); |
|
72 | 77 |
|
73 | 78 |
CheckActivity act = (CheckActivity)mView.getContext(); |
74 | 79 |
|
75 | 80 |
DistortedEffects.setMaxVertex(act.getMaxV()); |
76 | 81 |
DistortedEffects.setMaxFragment(act.getMaxF()); |
82 |
DistortedEffects.enableEffect(EffectName.SWIRL); |
|
83 |
DistortedEffects.enableEffect(EffectName.DEFORM); |
|
84 |
DistortedEffects.enableEffect(EffectName.CHROMA); |
|
85 |
|
|
86 |
mSwirl1 = new Static3D(0,0,0); |
|
87 |
mSwirl2 = new Static3D(0,0,0); |
|
88 |
mDeform1= new Static3D(0,0,0); |
|
89 |
mDeform2= new Static3D(0,0,0); |
|
90 |
|
|
91 |
mMove = new Static3D(0,0,0); |
|
92 |
mScale= new Static3D(1,1,1); |
|
93 |
mEffects = new DistortedEffects(); |
|
94 |
mEffects.apply(new MatrixEffectMove(mMove)); |
|
95 |
mEffects.apply(new MatrixEffectScale(mScale)); |
|
96 |
|
|
97 |
// Try adding 2 Vertex Effects to the Bitmap. |
|
98 |
// This will fail if we have set maxVertexEffects to something < 2. |
|
99 |
// |
|
100 |
// Even if adding some of the Effects fails, the App will still start - you just won't see |
|
101 |
// the effects that failed to add. |
|
102 |
|
|
103 |
Dynamic3D dSwirl = new Dynamic3D(2000,0.0f); |
|
104 |
dSwirl.add(mSwirl1); |
|
105 |
dSwirl.add(mSwirl2); |
|
106 |
|
|
107 |
if( !mEffects.apply( new VertexEffectSwirl(new Static1D(30), dSwirl, new Static4D( 0,0,40,40)) ) ) |
|
108 |
{ |
|
109 |
Log.e("Check", "Failed to add Swirl effect!"); |
|
110 |
} |
|
111 |
|
|
112 |
Dynamic3D dDeform = new Dynamic3D(2000,0.0f); |
|
113 |
dDeform.add(mDeform1); |
|
114 |
dDeform.add(mDeform2); |
|
115 |
|
|
116 |
if( !mEffects.apply( new VertexEffectDeform(dDeform, new Static3D(mObjWidth/2,0,0)) ) ) |
|
117 |
{ |
|
118 |
Log.e("Check", "Failed to add Deform effect!"); |
|
119 |
} |
|
120 |
|
|
121 |
// Now try adding 1 Fragment Effect. Likewise, will fail if maxFragmentEffects is <1. |
|
122 |
Static3D color = new Static3D(1,0,0); |
|
123 |
Dynamic1D inter = new Dynamic1D(2000,0.0f); |
|
124 |
inter.add(new Static1D(0)); |
|
125 |
inter.add(new Static1D(1)); |
|
126 |
|
|
127 |
if( !mEffects.apply( new FragmentEffectChroma(inter, color) ) ) |
|
128 |
{ |
|
129 |
Log.e("Check", "Failed to add Chroma effect!"); |
|
130 |
} |
|
77 | 131 |
|
78 | 132 |
mScreen = new DistortedScreen(mView); |
79 | 133 |
} |
... | ... | |
89 | 143 |
|
90 | 144 |
public void onSurfaceChanged(GL10 glUnused, int width, int height) |
91 | 145 |
{ |
92 |
mEffects.abortEffects(EffectTypes.MATRIX); |
|
93 |
|
|
94 |
if( (float)bmpHeight/bmpWidth > (float)height/width ) |
|
146 |
if( (float)mObjHeight/mObjWidth > (float)height/width ) |
|
95 | 147 |
{ |
96 |
int w = (height*bmpWidth)/bmpHeight; |
|
97 |
float factor = (float)height/bmpHeight; |
|
98 |
|
|
99 |
mEffects.move( new Static3D((width-w)/2,0,0) ); |
|
100 |
mEffects.scale(factor); |
|
148 |
int w = (height*mObjWidth)/mObjHeight; |
|
149 |
float factor = (float)height/mObjHeight; |
|
150 |
mMove.set((width-w)/2,0,0); |
|
151 |
mScale.set(factor,factor,factor); |
|
101 | 152 |
} |
102 | 153 |
else |
103 | 154 |
{ |
104 |
int h = (width*bmpHeight)/bmpWidth; |
|
105 |
float factor = (float)width/bmpWidth; |
|
106 |
|
|
107 |
mEffects.move( new Static3D(0,(height-h)/2,0) ); |
|
108 |
mEffects.scale(factor); |
|
155 |
int h = (width*mObjHeight)/mObjWidth; |
|
156 |
float factor = (float)width/mObjWidth; |
|
157 |
mMove.set(0,(height-h)/2,0); |
|
158 |
mScale.set(factor,factor,factor); |
|
109 | 159 |
} |
110 |
|
|
111 |
mScreen.resize(width, height);
|
|
160 |
|
|
161 |
mScreen.resize(width,height); |
|
112 | 162 |
} |
113 | 163 |
|
114 | 164 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
131 | 181 |
catch(IOException e) { } |
132 | 182 |
} |
133 | 183 |
|
134 |
bmpHeight = bitmap.getHeight();
|
|
135 |
bmpWidth = bitmap.getWidth();
|
|
184 |
mObjHeight = bitmap.getHeight();
|
|
185 |
mObjWidth = bitmap.getWidth();
|
|
136 | 186 |
|
137 |
if( mTexture==null ) mTexture = new DistortedTexture(bmpWidth,bmpHeight);
|
|
187 |
if( mTexture==null ) mTexture = new DistortedTexture(mObjWidth,mObjHeight);
|
|
138 | 188 |
mTexture.setTexture(bitmap); |
139 | 189 |
|
140 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*bmpHeight/bmpWidth);
|
|
190 |
if( mMesh==null ) mMesh = new MeshFlat(30,30*mObjHeight/mObjWidth);
|
|
141 | 191 |
|
142 | 192 |
mScreen.detachAll(); |
143 | 193 |
mScreen.attach(mTexture,mEffects,mMesh); |
144 | 194 |
|
145 |
mEffects.abortEffects(EffectTypes.VERTEX); |
|
146 |
mEffects.abortEffects(EffectTypes.FRAGMENT); |
|
147 |
|
|
148 |
// Try adding 2 Vertex Effects to the Bitmap. |
|
149 |
// This will fail if we have set maxVertexEffects to something < 2. |
|
150 |
// |
|
151 |
// Even if adding some of the Effects fails, the App will still start - you just won't see |
|
152 |
// the effects that failed to add. |
|
153 |
|
|
154 |
Dynamic3D dSwirl = new Dynamic3D(2000,0.0f); |
|
155 |
dSwirl.add(new Static3D( 0, bmpHeight/2, 0)); |
|
156 |
dSwirl.add(new Static3D( bmpWidth, bmpHeight/2, 0)); |
|
157 |
|
|
158 |
long swirlEffectID = mEffects.swirl( new Static1D(30), dSwirl, new Static4D( 0,0,40,40) ); |
|
159 |
|
|
160 |
if( swirlEffectID<0 ) |
|
161 |
{ |
|
162 |
Log.e("Check", "Failed to add Swirl effect!"); |
|
163 |
} |
|
164 |
|
|
165 |
Dynamic3D dDeform = new Dynamic3D(2000,0.0f); |
|
166 |
dDeform.add(new Static3D( 0, 0,0)); |
|
167 |
dDeform.add(new Static3D( 0,-bmpHeight,0)); |
|
168 |
|
|
169 |
long deformEffectID = mEffects.deform(dDeform, new Static3D(bmpWidth/2,0,0) ); |
|
170 |
|
|
171 |
if( deformEffectID<0 ) |
|
172 |
{ |
|
173 |
Log.e("Check", "Failed to add Deform effect!"); |
|
174 |
} |
|
175 |
|
|
176 |
// Now try adding 1 Fragment Effect. Likewise, will fail if maxFragmentEffects is <1. |
|
177 |
Static3D color = new Static3D(1,0,0); |
|
178 |
Dynamic1D inter = new Dynamic1D(2000,0.0f); |
|
179 |
inter.add(new Static1D(0)); |
|
180 |
inter.add(new Static1D(1)); |
|
181 |
|
|
182 |
long chromaEffectID = mEffects.chroma(inter, color); |
|
183 |
|
|
184 |
if( chromaEffectID<0 ) |
|
185 |
{ |
|
186 |
Log.e("Check", "Failed to add Chroma effect!"); |
|
187 |
} |
|
188 |
|
|
189 |
DistortedEffects.enableEffect(EffectNames.SWIRL); |
|
190 |
DistortedEffects.enableEffect(EffectNames.DEFORM); |
|
191 |
DistortedEffects.enableEffect(EffectNames.CHROMA); |
|
195 |
mSwirl1.set ( 0, mObjHeight/2, 0); |
|
196 |
mSwirl2.set (mObjWidth, mObjHeight/2, 0); |
|
197 |
mDeform1.set( 0, 0 , 0); |
|
198 |
mDeform2.set( 0,-mObjHeight , 0); |
|
192 | 199 |
|
193 | 200 |
try |
194 | 201 |
{ |
Also available in: Unified diff
Further progress with Apps.