Project

General

Profile

« Previous | Next » 

Revision c40df162

Added by Leszek Koltunski over 5 years ago

Improve the Triblur app to be able to switch objects into 1 of 3 states: no postprocessing, blur, glow.

View differences:

src/main/java/org/distorted/examples/triblur/TriblurActivity.java
37 37

  
38 38
public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
39 39
{
40
    private static final int NONE0 = 0;
41
    private static final int NONE1 = 1;
42
    private static final int NONE2 = 2;
43
    private static final int BLUR0 = 3;
44
    private static final int BLUR1 = 4;
45
    private static final int BLUR2 = 5;
46
    private static final int GLOW0 = 6;
47
    private static final int GLOW1 = 7;
48
    private static final int GLOW2 = 8;
49

  
40 50
    private int mQuality;
41 51
    private int mBackground;
42 52

  
......
64 74

  
65 75
        privateQuality(1);
66 76
        privateBackgroundColor(1);
77
        privateEffect(BLUR0);
78
        privateEffect(BLUR1);
79
        privateEffect(BLUR2);
67 80
        }
68 81

  
69 82
      Spinner typeSpinner  = findViewById(R.id.triblur_spinnerQuality);
......
146 159
      TriblurSurfaceView view = this.findViewById(R.id.triblurSurfaceView);
147 160
      TriblurRenderer renderer = view.getRenderer();
148 161

  
149
      savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() );
162
      savedInstanceState.putIntArray("effects", renderer.getEffects() );
150 163
      savedInstanceState.putInt("quality", mQuality);
151 164
      savedInstanceState.putInt("background", mBackground);
152 165
      }
......
158 171
      {
159 172
      super.onRestoreInstanceState(savedInstanceState);
160 173

  
161
      boolean[] checkboxes = savedInstanceState.getBooleanArray("checkboxes");
174
      int[] effects = savedInstanceState.getIntArray("effects");
162 175

  
163 176
      TriblurSurfaceView view = this.findViewById(R.id.triblurSurfaceView);
164 177
      TriblurRenderer renderer = view.getRenderer();
165 178

  
166
      if( checkboxes!=null )
179
      if( effects!=null )
167 180
        {
168
        for(int i=0; i<checkboxes.length; i++)
181
        for(int i=0; i<effects.length; i++)
169 182
          {
170
          renderer.setChecked(i,checkboxes[i]);
183
          renderer.setEffects(i,effects[i]);
171 184
          }
172 185
        }
173 186

  
......
206 219

  
207 220
///////////////////////////////////////////////////////////////////////////////////////////////////
208 221

  
209
  public void onClick(View view)
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)
210 241
    {
211
    CheckBox box = (CheckBox)view;
212
    boolean checked = box.isChecked();
213
    TriblurSurfaceView sView = this.findViewById(R.id.triblurSurfaceView);
242
    TriblurSurfaceView view = this.findViewById(R.id.triblurSurfaceView);
243
    TriblurRenderer renderer = view.getRenderer();
214 244

  
215
    switch(box.getId())
245
    switch(index)
216 246
      {
217
      case R.id.triblurCheckBox0  : sView.getRenderer().setChecked(0,checked); break;
218
      case R.id.triblurCheckBox1  : sView.getRenderer().setChecked(1,checked); break;
219
      case R.id.triblurCheckBox2  : sView.getRenderer().setChecked(2,checked); break;
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;
220 256
      }
221 257
    }
222 258

  

Also available in: Unified diff