Project

General

Profile

Download (9 KB) Statistics
| Branch: | Revision:

examples / src / main / java / org / distorted / examples / multiblur / MultiblurActivity.java @ 80f37d1b

1 58059374 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Distorted.                                                               //
5
//                                                                                               //
6
// Distorted is free software: you can redistribute it and/or modify                             //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Distorted is distributed in the hope that it will be useful,                                  //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20
package org.distorted.examples.multiblur;
21
22
import android.app.Activity;
23 3e673c74 Leszek Koltunski
import android.opengl.GLSurfaceView;
24 58059374 Leszek Koltunski
import android.os.Bundle;
25 febb61ba Leszek Koltunski
import android.view.View;
26
import android.widget.CheckBox;
27 3e673c74 Leszek Koltunski
import android.widget.SeekBar;
28
29
import org.distorted.examples.R;
30 01782e85 Leszek Koltunski
import org.distorted.library.main.Distorted;
31 8843b69b leszek
import org.distorted.library.effect.EffectQuality;
32 58059374 Leszek Koltunski
33
///////////////////////////////////////////////////////////////////////////////////////////////////
34
35 3e673c74 Leszek Koltunski
public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener
36 58059374 Leszek Koltunski
{
37 6d896e0e leszek
    private int mQuality;
38
39 58059374 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
40
41
    @Override
42
    protected void onCreate(Bundle savedState) 
43
      {
44
      super.onCreate(savedState);
45 3e673c74 Leszek Koltunski
      setContentView(R.layout.multiblurlayout);
46
47 fc6f1299 Leszek Koltunski
      SeekBar distanceBar = (SeekBar)findViewById(R.id.multiblurDistanceSeek);
48 dea953f4 leszek
      SeekBar rangeBar    = (SeekBar)findViewById(R.id.multiblurRangeSeek);
49
50 fc6f1299 Leszek Koltunski
      distanceBar.setOnSeekBarChangeListener(this);
51
      rangeBar.setOnSeekBarChangeListener(this);
52 dea953f4 leszek
53
      if( savedState==null )
54
        {
55
        distanceBar.setProgress(50);
56 886800be leszek
        rangeBar.setProgress(50);
57 6d896e0e leszek
        mQuality = EffectQuality.HIGHEST.ordinal();
58 dea953f4 leszek
        }
59 58059374 Leszek Koltunski
      }
60
61
///////////////////////////////////////////////////////////////////////////////////////////////////
62
    
63
    @Override
64
    protected void onPause() 
65
      {
66 3e673c74 Leszek Koltunski
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
67
      view.onPause();
68 b0ebdf5e Leszek Koltunski
      Distorted.onPause();
69 58059374 Leszek Koltunski
      super.onPause();
70
      }
71
72
///////////////////////////////////////////////////////////////////////////////////////////////////
73
    
74
    @Override
75
    protected void onResume() 
76
      {
77
      super.onResume();
78 3e673c74 Leszek Koltunski
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
79
      view.onResume();
80 58059374 Leszek Koltunski
      }
81
    
82
///////////////////////////////////////////////////////////////////////////////////////////////////
83
    
84
    @Override
85
    protected void onDestroy() 
86
      {
87
      Distorted.onDestroy();  
88
      super.onDestroy();
89
      }
90 3e673c74 Leszek Koltunski
91 46ab4363 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
92
93
    @Override
94
    public void onSaveInstanceState(Bundle savedInstanceState)
95
      {
96
      super.onSaveInstanceState(savedInstanceState);
97
98
      MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
99
      MultiblurRenderer renderer = view.getRenderer();
100
101
      savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() );
102 6d896e0e leszek
      savedInstanceState.putInt("quality", mQuality);
103 46ab4363 Leszek Koltunski
      }
104
105
///////////////////////////////////////////////////////////////////////////////////////////////////
106
107
    @Override
108
    public void onRestoreInstanceState(Bundle savedInstanceState)
109
      {
110
      super.onRestoreInstanceState(savedInstanceState);
111
112
      boolean[] checkboxes = savedInstanceState.getBooleanArray("checkboxes");
113
114
      MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
115
      MultiblurRenderer renderer = view.getRenderer();
116
117
      if( checkboxes!=null )
118
        {
119
        for(int i=0; i<checkboxes.length; i++)
120
          {
121
          renderer.setChecked(i,checkboxes[i]);
122
          }
123
        }
124 6d896e0e leszek
125
      mQuality = savedInstanceState.getInt("quality");
126
127
      switch(mQuality)
128
        {
129
        case 0 : quality0(null); break;
130
        case 1 : quality1(null); break;
131
        case 2 : quality2(null); break;
132
        case 3 : quality3(null); break;
133 80f37d1b Leszek Koltunski
        default: android.util.Log.e("MultiBlur", "error - unknown quality!");
134 6d896e0e leszek
        }
135 46ab4363 Leszek Koltunski
      }
136
137 3e673c74 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
138
139
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
140
      {
141
      switch (bar.getId())
142
        {
143 7af96b9f Leszek Koltunski
        case R.id.multiblurDistanceSeek: MultiblurSurfaceView view1 = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
144
                                         view1.getRenderer().setDistance(progress);
145 fc6f1299 Leszek Koltunski
                                         break;
146
        case R.id.multiblurRangeSeek   : MultiblurSurfaceView view2 = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
147
                                         view2.getRenderer().setRange(progress);
148
                                         break;
149
150 3e673c74 Leszek Koltunski
        }
151
      }
152
153
///////////////////////////////////////////////////////////////////////////////////////////////////
154
155
    public void onStartTrackingTouch(SeekBar bar) { }
156
157
///////////////////////////////////////////////////////////////////////////////////////////////////
158
159
    public void onStopTrackingTouch(SeekBar bar)  { }
160
161
///////////////////////////////////////////////////////////////////////////////////////////////////
162 febb61ba Leszek Koltunski
163
  public void onClick(View view)
164
    {
165
    CheckBox box = (CheckBox)view;
166
    int id = box.getId();
167
    boolean checked = box.isChecked();
168
    MultiblurSurfaceView sView = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
169
170
    switch(id)
171
      {
172 46ab4363 Leszek Koltunski
      case R.id.multiblurCheckBox0  : sView.getRenderer().setChecked(0,checked); break;
173
      case R.id.multiblurCheckBox1  : sView.getRenderer().setChecked(1,checked); break;
174
      case R.id.multiblurCheckBox2  : sView.getRenderer().setChecked(2,checked); break;
175
      case R.id.multiblurCheckBox3  : sView.getRenderer().setChecked(3,checked); break;
176
      case R.id.multiblurCheckBox4  : sView.getRenderer().setChecked(4,checked); break;
177
      case R.id.multiblurCheckBox5  : sView.getRenderer().setChecked(5,checked); break;
178
      case R.id.multiblurCheckBox6  : sView.getRenderer().setChecked(6,checked); break;
179
      case R.id.multiblurCheckBox7  : sView.getRenderer().setChecked(7,checked); break;
180 febb61ba Leszek Koltunski
      }
181
    }
182 bf0bc90f Leszek Koltunski
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 6d896e0e leszek
    mQuality = EffectQuality.HIGHEST.ordinal();
191 bf0bc90f Leszek Koltunski
    }
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 6d896e0e leszek
    mQuality = EffectQuality.HIGH.ordinal();
201 bf0bc90f Leszek Koltunski
    }
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 6d896e0e leszek
    mQuality = EffectQuality.MEDIUM.ordinal();
211 bf0bc90f Leszek Koltunski
    }
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 6d896e0e leszek
    mQuality = EffectQuality.LOW.ordinal();
221 bf0bc90f Leszek Koltunski
    }
222 58059374 Leszek Koltunski
}