Project

General

Profile

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

examples / src / main / java / org / distorted / examples / triblur / TriblurActivity.java @ 80f37d1b

1
///////////////////////////////////////////////////////////////////////////////////////////////////
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.triblur;
21

    
22
import android.app.Activity;
23
import android.opengl.GLSurfaceView;
24
import android.os.Bundle;
25
import android.view.View;
26
import android.widget.CheckBox;
27
import android.widget.SeekBar;
28

    
29
import org.distorted.examples.R;
30
import org.distorted.library.effect.EffectQuality;
31
import org.distorted.library.main.Distorted;
32

    
33
///////////////////////////////////////////////////////////////////////////////////////////////////
34

    
35
public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener
36
{
37
    private int mQuality;
38

    
39
///////////////////////////////////////////////////////////////////////////////////////////////////
40

    
41
    @Override
42
    protected void onCreate(Bundle savedState) 
43
      {
44
      super.onCreate(savedState);
45
      setContentView(R.layout.triblurlayout);
46

    
47
      SeekBar radiusBar0 = (SeekBar)findViewById(R.id.triblurSeek0);
48
      SeekBar radiusBar1 = (SeekBar)findViewById(R.id.triblurSeek1);
49
      SeekBar radiusBar2 = (SeekBar)findViewById(R.id.triblurSeek2);
50

    
51
      radiusBar0.setOnSeekBarChangeListener(this);
52
      radiusBar1.setOnSeekBarChangeListener(this);
53
      radiusBar2.setOnSeekBarChangeListener(this);
54

    
55
      if( savedState==null )
56
        {
57
        radiusBar0.setProgress(20);
58
        radiusBar1.setProgress(50);
59
        radiusBar2.setProgress(70);
60

    
61
        mQuality = EffectQuality.HIGH.ordinal();
62
        }
63
      }
64

    
65
///////////////////////////////////////////////////////////////////////////////////////////////////
66
    
67
    @Override
68
    protected void onPause() 
69
      {
70
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.triblurSurfaceView);
71
      view.onPause();
72
      Distorted.onPause();
73
      super.onPause();
74
      }
75

    
76
///////////////////////////////////////////////////////////////////////////////////////////////////
77
    
78
    @Override
79
    protected void onResume() 
80
      {
81
      super.onResume();
82
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.triblurSurfaceView);
83
      view.onResume();
84
      }
85
    
86
///////////////////////////////////////////////////////////////////////////////////////////////////
87
    
88
    @Override
89
    protected void onDestroy() 
90
      {
91
      Distorted.onDestroy();  
92
      super.onDestroy();
93
      }
94

    
95
///////////////////////////////////////////////////////////////////////////////////////////////////
96

    
97
    @Override
98
    public void onSaveInstanceState(Bundle savedInstanceState)
99
      {
100
      super.onSaveInstanceState(savedInstanceState);
101

    
102
      TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
103
      TriblurRenderer renderer = view.getRenderer();
104

    
105
      savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() );
106
      savedInstanceState.putInt("quality", mQuality);
107
      }
108

    
109
///////////////////////////////////////////////////////////////////////////////////////////////////
110

    
111
    @Override
112
    public void onRestoreInstanceState(Bundle savedInstanceState)
113
      {
114
      super.onRestoreInstanceState(savedInstanceState);
115

    
116
      boolean[] checkboxes = savedInstanceState.getBooleanArray("checkboxes");
117

    
118
      TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
119
      TriblurRenderer renderer = view.getRenderer();
120

    
121
      if( checkboxes!=null )
122
        {
123
        for(int i=0; i<checkboxes.length; i++)
124
          {
125
          renderer.setChecked(i,checkboxes[i]);
126
          }
127
        }
128

    
129
      mQuality = savedInstanceState.getInt("quality");
130

    
131
      switch(mQuality)
132
        {
133
        case 0 : quality0(null); break;
134
        case 1 : quality1(null); break;
135
        case 2 : quality2(null); break;
136
        case 3 : quality3(null); break;
137
        default: android.util.Log.e("TriBlur", "error - unknown quality!");
138
        }
139
      }
140

    
141
///////////////////////////////////////////////////////////////////////////////////////////////////
142

    
143
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
144
      {
145
      switch (bar.getId())
146
        {
147
        case R.id.triblurSeek0: TriblurSurfaceView view0 = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
148
                                view0.getRenderer().setRange(0,progress);
149
                                break;
150
        case R.id.triblurSeek1: TriblurSurfaceView view1 = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
151
                                view1.getRenderer().setRange(1,progress);
152
                                break;
153
        case R.id.triblurSeek2: TriblurSurfaceView view2 = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
154
                                view2.getRenderer().setRange(2,progress);
155
                                break;
156
        }
157
      }
158

    
159
///////////////////////////////////////////////////////////////////////////////////////////////////
160

    
161
    public void onStartTrackingTouch(SeekBar bar) { }
162

    
163
///////////////////////////////////////////////////////////////////////////////////////////////////
164

    
165
    public void onStopTrackingTouch(SeekBar bar)  { }
166

    
167
///////////////////////////////////////////////////////////////////////////////////////////////////
168

    
169
  public void onClick(View view)
170
    {
171
    CheckBox box = (CheckBox)view;
172
    int id = box.getId();
173
    boolean checked = box.isChecked();
174
    TriblurSurfaceView sView = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
175

    
176
    switch(id)
177
      {
178
      case R.id.triblurCheckBox0  : sView.getRenderer().setChecked(0,checked); break;
179
      case R.id.triblurCheckBox1  : sView.getRenderer().setChecked(1,checked); break;
180
      case R.id.triblurCheckBox2  : sView.getRenderer().setChecked(2,checked); break;
181
      }
182
    }
183

    
184
///////////////////////////////////////////////////////////////////////////////////////////////////
185

    
186
  public void quality0(View v)
187
    {
188
    TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
189
    TriblurRenderer renderer = view.getRenderer();
190
    renderer.setQuality(EffectQuality.HIGHEST);
191
    mQuality = EffectQuality.HIGHEST.ordinal();
192
    }
193

    
194
///////////////////////////////////////////////////////////////////////////////////////////////////
195

    
196
  public void quality1(View v)
197
    {
198
    TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
199
    TriblurRenderer renderer = view.getRenderer();
200
    renderer.setQuality(EffectQuality.HIGH);
201
    mQuality = EffectQuality.HIGH.ordinal();
202
    }
203

    
204
///////////////////////////////////////////////////////////////////////////////////////////////////
205

    
206
  public void quality2(View v)
207
    {
208
    TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
209
    TriblurRenderer renderer = view.getRenderer();
210
    renderer.setQuality(EffectQuality.MEDIUM);
211
    mQuality = EffectQuality.MEDIUM.ordinal();
212
    }
213

    
214
///////////////////////////////////////////////////////////////////////////////////////////////////
215

    
216
  public void quality3(View v)
217
    {
218
    TriblurSurfaceView view = (TriblurSurfaceView) this.findViewById(R.id.triblurSurfaceView);
219
    TriblurRenderer renderer = view.getRenderer();
220
    renderer.setQuality(EffectQuality.LOW);
221
    mQuality = EffectQuality.LOW.ordinal();
222
    }
223
}
(1-1/3)