Revision a935e9db
Added by Leszek Koltunski almost 6 years ago
src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java | ||
---|---|---|
23 | 23 |
import android.opengl.GLSurfaceView; |
24 | 24 |
import android.os.Bundle; |
25 | 25 |
import android.view.View; |
26 |
import android.widget.AdapterView; |
|
27 |
import android.widget.ArrayAdapter; |
|
26 | 28 |
import android.widget.CheckBox; |
27 | 29 |
import android.widget.SeekBar; |
30 |
import android.widget.Spinner; |
|
28 | 31 |
|
29 | 32 |
import org.distorted.examples.R; |
30 | 33 |
import org.distorted.library.main.Distorted; |
... | ... | |
32 | 35 |
|
33 | 36 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
34 | 37 |
|
35 |
public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener |
|
38 |
public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
|
|
36 | 39 |
{ |
37 | 40 |
private int mQuality; |
38 | 41 |
|
... | ... | |
56 | 59 |
rangeBar.setProgress(50); |
57 | 60 |
mQuality = EffectQuality.HIGHEST.ordinal(); |
58 | 61 |
} |
62 |
|
|
63 |
Spinner typeSpinner = (Spinner)findViewById(R.id.multiblur_spinnerQuality); |
|
64 |
typeSpinner.setOnItemSelectedListener(this); |
|
65 |
|
|
66 |
String[] objectType = new String[] {"Quality Highiest", "Quality High", "Quality Medium", "Quality Low"}; |
|
67 |
|
|
68 |
ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType); |
|
69 |
adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
|
70 |
typeSpinner.setAdapter(adapterType); |
|
71 |
|
|
72 |
Spinner bitmapSpinner = (Spinner)findViewById(R.id.multiblur_spinnerMode); |
|
73 |
bitmapSpinner.setOnItemSelectedListener(this); |
|
74 |
|
|
75 |
String[] objectBitmap = new String[] { "Render: Normal", "Render: OIT" }; |
|
76 |
|
|
77 |
ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap); |
|
78 |
adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
|
79 |
bitmapSpinner.setAdapter(adapterBitmap); |
|
80 |
} |
|
81 |
|
|
82 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
83 |
|
|
84 |
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) |
|
85 |
{ |
|
86 |
MultiblurSurfaceView v = this.findViewById(R.id.multiblurSurfaceView); |
|
87 |
MultiblurRenderer renderer = v.getRenderer(); |
|
88 |
|
|
89 |
switch(parent.getId()) |
|
90 |
{ |
|
91 |
case R.id.multiblur_spinnerQuality: EffectQuality quality; |
|
92 |
|
|
93 |
switch(pos) |
|
94 |
{ |
|
95 |
case 0 : quality = EffectQuality.HIGHEST; break; |
|
96 |
case 1 : quality = EffectQuality.HIGH ; break; |
|
97 |
case 2 : quality = EffectQuality.MEDIUM ; break; |
|
98 |
default: quality = EffectQuality.LOW ; |
|
99 |
} |
|
100 |
renderer.setQuality(quality); |
|
101 |
mQuality = quality.ordinal(); |
|
102 |
break; |
|
103 |
case R.id.multiblur_spinnerMode : renderer.setRenderModeToOIT(pos==1); |
|
104 |
break; |
|
105 |
} |
|
106 |
} |
|
107 |
|
|
108 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
109 |
|
|
110 |
public void onNothingSelected(AdapterView<?> parent) |
|
111 |
{ |
|
59 | 112 |
} |
60 | 113 |
|
61 | 114 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
63 | 116 |
@Override |
64 | 117 |
protected void onPause() |
65 | 118 |
{ |
66 |
GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
119 |
GLSurfaceView view = this.findViewById(R.id.multiblurSurfaceView); |
|
67 | 120 |
view.onPause(); |
68 | 121 |
Distorted.onPause(); |
69 | 122 |
super.onPause(); |
... | ... | |
75 | 128 |
protected void onResume() |
76 | 129 |
{ |
77 | 130 |
super.onResume(); |
78 |
GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
131 |
GLSurfaceView view = this.findViewById(R.id.multiblurSurfaceView); |
|
79 | 132 |
view.onResume(); |
80 | 133 |
} |
81 | 134 |
|
... | ... | |
95 | 148 |
{ |
96 | 149 |
super.onSaveInstanceState(savedInstanceState); |
97 | 150 |
|
98 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
151 |
MultiblurSurfaceView view = this.findViewById(R.id.multiblurSurfaceView); |
|
99 | 152 |
MultiblurRenderer renderer = view.getRenderer(); |
100 | 153 |
|
101 | 154 |
savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() ); |
... | ... | |
111 | 164 |
|
112 | 165 |
boolean[] checkboxes = savedInstanceState.getBooleanArray("checkboxes"); |
113 | 166 |
|
114 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
167 |
MultiblurSurfaceView view = this.findViewById(R.id.multiblurSurfaceView); |
|
115 | 168 |
MultiblurRenderer renderer = view.getRenderer(); |
116 | 169 |
|
117 | 170 |
if( checkboxes!=null ) |
... | ... | |
126 | 179 |
|
127 | 180 |
switch(mQuality) |
128 | 181 |
{ |
129 |
case 0 : quality0(null); break;
|
|
130 |
case 1 : quality1(null); break;
|
|
131 |
case 2 : quality2(null); break;
|
|
132 |
case 3 : quality3(null); break;
|
|
182 |
case 0 : renderer.setQuality(EffectQuality.HIGHEST); break;
|
|
183 |
case 1 : renderer.setQuality(EffectQuality.HIGH ); break;
|
|
184 |
case 2 : renderer.setQuality(EffectQuality.MEDIUM ); break;
|
|
185 |
case 3 : renderer.setQuality(EffectQuality.LOW ); break;
|
|
133 | 186 |
default: android.util.Log.e("MultiBlur", "error - unknown quality!"); |
134 | 187 |
} |
135 | 188 |
} |
... | ... | |
140 | 193 |
{ |
141 | 194 |
switch (bar.getId()) |
142 | 195 |
{ |
143 |
case R.id.multiblurDistanceSeek: MultiblurSurfaceView view1 = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
196 |
case R.id.multiblurDistanceSeek: MultiblurSurfaceView view1 = this.findViewById(R.id.multiblurSurfaceView); |
|
144 | 197 |
view1.getRenderer().setDistance(progress); |
145 | 198 |
break; |
146 |
case R.id.multiblurRangeSeek : MultiblurSurfaceView view2 = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
199 |
case R.id.multiblurRangeSeek : MultiblurSurfaceView view2 = this.findViewById(R.id.multiblurSurfaceView); |
|
147 | 200 |
view2.getRenderer().setRange(progress); |
148 | 201 |
break; |
149 | 202 |
|
... | ... | |
165 | 218 |
CheckBox box = (CheckBox)view; |
166 | 219 |
int id = box.getId(); |
167 | 220 |
boolean checked = box.isChecked(); |
168 |
MultiblurSurfaceView sView = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
|
|
221 |
MultiblurSurfaceView sView = this.findViewById(R.id.multiblurSurfaceView); |
|
169 | 222 |
|
170 | 223 |
switch(id) |
171 | 224 |
{ |
... | ... | |
180 | 233 |
} |
181 | 234 |
} |
182 | 235 |
|
183 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
184 |
|
|
185 |
public void quality0(View v) |
|
186 |
{ |
|
187 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
188 |
MultiblurRenderer renderer = view.getRenderer(); |
|
189 |
renderer.setQuality(EffectQuality.HIGHEST); |
|
190 |
mQuality = EffectQuality.HIGHEST.ordinal(); |
|
191 |
} |
|
192 |
|
|
193 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
194 |
|
|
195 |
public void quality1(View v) |
|
196 |
{ |
|
197 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
198 |
MultiblurRenderer renderer = view.getRenderer(); |
|
199 |
renderer.setQuality(EffectQuality.HIGH); |
|
200 |
mQuality = EffectQuality.HIGH.ordinal(); |
|
201 |
} |
|
202 |
|
|
203 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
204 |
|
|
205 |
public void quality2(View v) |
|
206 |
{ |
|
207 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
208 |
MultiblurRenderer renderer = view.getRenderer(); |
|
209 |
renderer.setQuality(EffectQuality.MEDIUM); |
|
210 |
mQuality = EffectQuality.MEDIUM.ordinal(); |
|
211 |
} |
|
212 |
|
|
213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
214 |
|
|
215 |
public void quality3(View v) |
|
216 |
{ |
|
217 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
218 |
MultiblurRenderer renderer = view.getRenderer(); |
|
219 |
renderer.setQuality(EffectQuality.LOW); |
|
220 |
mQuality = EffectQuality.LOW.ordinal(); |
|
221 |
} |
|
222 | 236 |
} |
Also available in: Unified diff
Correct a recently introduced bug.