Revision 1b80a6e2
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/examples/triblur/TriblurActivity.java | ||
---|---|---|
36 | 36 |
|
37 | 37 |
public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener |
38 | 38 |
{ |
39 |
private static final int NONE0 = 0; |
|
40 |
private static final int NONE1 = 1; |
|
41 |
private static final int NONE2 = 2; |
|
42 |
private static final int BLUR0 = 3; |
|
43 |
private static final int BLUR1 = 4; |
|
44 |
private static final int BLUR2 = 5; |
|
45 |
private static final int GLOW0 = 6; |
|
46 |
private static final int GLOW1 = 7; |
|
47 |
private static final int GLOW2 = 8; |
|
48 |
|
|
49 | 39 |
private int mQuality; |
50 | 40 |
private int mBackground; |
51 | 41 |
|
... | ... | |
74 | 64 |
|
75 | 65 |
privateQuality(1); |
76 | 66 |
privateBackgroundColor(1); |
77 |
privateEffect(BLUR0); |
|
78 |
privateEffect(BLUR1); |
|
79 |
privateEffect(BLUR2); |
|
80 | 67 |
} |
81 | 68 |
|
82 |
Spinner typeSpinner = findViewById(R.id.triblur_spinnerQuality); |
|
83 |
typeSpinner.setOnItemSelectedListener(this); |
|
84 |
|
|
85 | 69 |
String[] objectType = new String[] {"Quality Highest", "Quality High", "Quality Medium", "Quality Low"}; |
70 |
setUpSpinner(R.id.triblur_spinnerQuality, objectType); |
|
71 |
String[] renderType = new String[] {"Render: Normal", "Render: OIT" }; |
|
72 |
setUpSpinner(R.id.triblur_spinnerMode, renderType); |
|
73 |
|
|
74 |
String[] effects = new String[] {"NONE", "BLUR", "GLOW", "BORDER" }; |
|
75 |
setUpSpinner(R.id.triblur_effect0, effects); |
|
76 |
setUpSpinner(R.id.triblur_effect1, effects); |
|
77 |
setUpSpinner(R.id.triblur_effect2, effects); |
|
78 |
} |
|
86 | 79 |
|
87 |
ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType); |
|
88 |
adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
|
89 |
typeSpinner.setAdapter(adapterType); |
|
90 |
|
|
91 |
Spinner bitmapSpinner = findViewById(R.id.triblur_spinnerMode); |
|
92 |
bitmapSpinner.setOnItemSelectedListener(this); |
|
80 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
93 | 81 |
|
94 |
String[] objectBitmap = new String[] { "Render: Normal", "Render: OIT" }; |
|
82 |
private void setUpSpinner(int spinnerID, String[] options) |
|
83 |
{ |
|
84 |
Spinner typeSpinner = findViewById(spinnerID); |
|
85 |
typeSpinner.setOnItemSelectedListener(this); |
|
95 | 86 |
|
96 |
ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
|
|
97 |
adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
98 |
bitmapSpinner.setAdapter(adapterBitmap);
|
|
87 |
ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, options);
|
|
88 |
adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
89 |
typeSpinner.setAdapter(adapterType);
|
|
99 | 90 |
} |
100 | 91 |
|
101 | 92 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
110 | 101 |
TriblurRenderer renderer = v.getRenderer(); |
111 | 102 |
renderer.setRenderModeToOIT(pos==1); |
112 | 103 |
break; |
104 |
case R.id.triblur_effect0 : privateEffect(0,pos); |
|
105 |
break; |
|
106 |
case R.id.triblur_effect1 : privateEffect(1,pos); |
|
107 |
break; |
|
108 |
case R.id.triblur_effect2 : privateEffect(2,pos); |
|
109 |
break; |
|
113 | 110 |
} |
114 | 111 |
} |
115 | 112 |
|
... | ... | |
211 | 208 |
|
212 | 209 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
213 | 210 |
|
214 |
public void onStartTrackingTouch(SeekBar bar) { }
|
|
211 |
public void onStartTrackingTouch(SeekBar bar) { } |
|
215 | 212 |
|
216 | 213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
217 | 214 |
|
218 |
public void onStopTrackingTouch(SeekBar bar) { }
|
|
215 |
public void onStopTrackingTouch(SeekBar bar) { } |
|
219 | 216 |
|
220 | 217 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
221 | 218 |
|
222 |
public void effect(View v) |
|
223 |
{ |
|
224 |
switch(v.getId()) |
|
225 |
{ |
|
226 |
case R.id.triblurRadioNone0: privateEffect(NONE0); break; |
|
227 |
case R.id.triblurRadioNone1: privateEffect(NONE1); break; |
|
228 |
case R.id.triblurRadioNone2: privateEffect(NONE2); break; |
|
229 |
case R.id.triblurRadioBlur0: privateEffect(BLUR0); break; |
|
230 |
case R.id.triblurRadioBlur1: privateEffect(BLUR1); break; |
|
231 |
case R.id.triblurRadioBlur2: privateEffect(BLUR2); break; |
|
232 |
case R.id.triblurRadioGlow0: privateEffect(GLOW0); break; |
|
233 |
case R.id.triblurRadioGlow1: privateEffect(GLOW1); break; |
|
234 |
case R.id.triblurRadioGlow2: privateEffect(GLOW2); break; |
|
235 |
} |
|
236 |
} |
|
237 |
|
|
238 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
239 |
|
|
240 |
private void privateEffect(int index) |
|
219 |
private void privateEffect(int object, int effect) |
|
241 | 220 |
{ |
242 | 221 |
TriblurSurfaceView view = findViewById(R.id.triblurSurfaceView); |
243 | 222 |
TriblurRenderer renderer = view.getRenderer(); |
244 | 223 |
|
245 |
switch(index) |
|
246 |
{ |
|
247 |
case NONE0: renderer.setEffects(0,0); break; |
|
248 |
case NONE1: renderer.setEffects(1,0); break; |
|
249 |
case NONE2: renderer.setEffects(2,0); break; |
|
250 |
case BLUR0: renderer.setEffects(0,1); break; |
|
251 |
case BLUR1: renderer.setEffects(1,1); break; |
|
252 |
case BLUR2: renderer.setEffects(2,1); break; |
|
253 |
case GLOW0: renderer.setEffects(0,2); break; |
|
254 |
case GLOW1: renderer.setEffects(1,2); break; |
|
255 |
case GLOW2: renderer.setEffects(2,2); break; |
|
256 |
} |
|
224 |
renderer.setEffects(object,effect); |
|
257 | 225 |
} |
258 | 226 |
|
259 | 227 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
New postprocess effect 'Border' (not working yet) and adding it to the testing app 'Triblur'.