Project

General

Profile

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

examples / src / main / java / org / distorted / examples / transparency / TransparencyActivity.java @ e0838536

1 664a0e45 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4 71c8884f Leszek Koltunski
// This file is part of Distorted.                                                               //
5 664a0e45 Leszek Koltunski
//                                                                                               //
6 71c8884f Leszek Koltunski
// Distorted is free software: you can redistribute it and/or modify                             //
7 664a0e45 Leszek Koltunski
// 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 71c8884f Leszek Koltunski
// Distorted is distributed in the hope that it will be useful,                                  //
12 664a0e45 Leszek Koltunski
// 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 71c8884f Leszek Koltunski
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18 664a0e45 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20
package org.distorted.examples.transparency;
21
22
import android.app.Activity;
23
import android.opengl.GLSurfaceView;
24
import android.os.Bundle;
25
import android.view.View;
26 a935e9db Leszek Koltunski
import android.widget.AdapterView;
27
import android.widget.ArrayAdapter;
28 29aba2d1 Leszek Koltunski
import android.widget.CheckBox;
29 664a0e45 Leszek Koltunski
import android.widget.SeekBar;
30 a935e9db Leszek Koltunski
import android.widget.Spinner;
31 664a0e45 Leszek Koltunski
32
import org.distorted.examples.R;
33 e3900503 Leszek Koltunski
import org.distorted.library.main.DistortedLibrary;
34 664a0e45 Leszek Koltunski
35
///////////////////////////////////////////////////////////////////////////////////////////////////
36
37 a935e9db Leszek Koltunski
public class TransparencyActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
38 664a0e45 Leszek Koltunski
{
39
    private int mRenderFirst;
40
41
///////////////////////////////////////////////////////////////////////////////////////////////////
42
43
    @Override
44
    protected void onCreate(Bundle savedState) 
45
      {
46
      super.onCreate(savedState);
47 a9df241d Leszek Koltunski
      DistortedLibrary.onCreate();
48 664a0e45 Leszek Koltunski
      setContentView(R.layout.transparencylayout);
49
50 29aba2d1 Leszek Koltunski
      SeekBar barRed    = findViewById(R.id.transparencySeekRed);
51
      SeekBar barYellow = findViewById(R.id.transparencySeekYellow);
52 664a0e45 Leszek Koltunski
53
      barRed.setOnSeekBarChangeListener(this);
54
      barYellow.setOnSeekBarChangeListener(this);
55
56
      if( savedState==null )
57
        {
58
        barRed.setProgress(50);
59
        barYellow.setProgress(50);
60
        privateRenderFirst(0);
61
        }
62 a935e9db Leszek Koltunski
63 29aba2d1 Leszek Koltunski
      Spinner typeSpinner  = findViewById(R.id.transparency_spinnerFirst);
64 a935e9db Leszek Koltunski
      typeSpinner.setOnItemSelectedListener(this);
65
66
      String[] objectType = new String[] {"First: Red", "First: Yellow"};
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 29aba2d1 Leszek Koltunski
      Spinner bitmapSpinner  = findViewById(R.id.transparency_spinnerMode);
73 a935e9db Leszek Koltunski
      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 664a0e45 Leszek Koltunski
      }
81
82 a935e9db Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
83
84
  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
85
    {
86
    switch(parent.getId())
87
      {
88
      case R.id.transparency_spinnerFirst  : privateRenderFirst(pos);
89
                                             break;
90
      case R.id.transparency_spinnerMode   : setRenderModeToOIT(pos==1);
91
                                             break;
92
      }
93
    }
94
95
///////////////////////////////////////////////////////////////////////////////////////////////////
96
97
  public void onNothingSelected(AdapterView<?> parent)
98
    {
99
    }
100
101 664a0e45 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
102
    
103
    @Override
104
    protected void onPause() 
105
      {
106 c0f27889 Leszek Koltunski
      super.onPause();
107 a4d59c0b Leszek Koltunski
      GLSurfaceView view = findViewById(R.id.transparencySurfaceView);
108 664a0e45 Leszek Koltunski
      view.onPause();
109 e3900503 Leszek Koltunski
      DistortedLibrary.onPause();
110 664a0e45 Leszek Koltunski
      }
111
112
///////////////////////////////////////////////////////////////////////////////////////////////////
113
    
114
    @Override
115
    protected void onResume() 
116
      {
117
      super.onResume();
118 a4d59c0b Leszek Koltunski
      GLSurfaceView view = findViewById(R.id.transparencySurfaceView);
119 664a0e45 Leszek Koltunski
      view.onResume();
120
      }
121
    
122
///////////////////////////////////////////////////////////////////////////////////////////////////
123
    
124
    @Override
125
    protected void onDestroy() 
126
      {
127 e3900503 Leszek Koltunski
      DistortedLibrary.onDestroy();
128 664a0e45 Leszek Koltunski
      super.onDestroy();
129
      }
130
131
///////////////////////////////////////////////////////////////////////////////////////////////////
132
133
    @Override
134
    public void onSaveInstanceState(Bundle savedInstanceState)
135
      {
136
      super.onSaveInstanceState(savedInstanceState);
137
      savedInstanceState.putInt("render", mRenderFirst);
138
      }
139
140
///////////////////////////////////////////////////////////////////////////////////////////////////
141
142
    @Override
143
    public void onRestoreInstanceState(Bundle savedInstanceState)
144
      {
145
      super.onRestoreInstanceState(savedInstanceState);
146
147
      mRenderFirst= savedInstanceState.getInt("render");
148
      privateRenderFirst(mRenderFirst);
149
      }
150
151
///////////////////////////////////////////////////////////////////////////////////////////////////
152
153
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
154
      {
155
      switch (bar.getId())
156
        {
157 a4d59c0b Leszek Koltunski
        case R.id.transparencySeekRed:    TransparencySurfaceView view0 = findViewById(R.id.transparencySurfaceView);
158 664a0e45 Leszek Koltunski
                                          view0.getRenderer().setTransparency(0, (float)progress/100 );
159
                                          break;
160 a4d59c0b Leszek Koltunski
        case R.id.transparencySeekYellow: TransparencySurfaceView view1 = findViewById(R.id.transparencySurfaceView);
161 664a0e45 Leszek Koltunski
                                          view1.getRenderer().setTransparency(1, (float)progress/100 );
162
                                          break;
163
        }
164
      }
165
166
///////////////////////////////////////////////////////////////////////////////////////////////////
167
168
    public void onStartTrackingTouch(SeekBar bar) { }
169
170
///////////////////////////////////////////////////////////////////////////////////////////////////
171
172
    public void onStopTrackingTouch(SeekBar bar)  { }
173
174
///////////////////////////////////////////////////////////////////////////////////////////////////
175
176 a935e9db Leszek Koltunski
    private void setRenderModeToOIT(boolean oit)
177 664a0e45 Leszek Koltunski
      {
178 a4d59c0b Leszek Koltunski
      TransparencySurfaceView view = findViewById(R.id.transparencySurfaceView);
179 a935e9db Leszek Koltunski
      TransparencyRenderer renderer= view.getRenderer();
180
181
      renderer.setRenderModeToOIT(oit);
182 664a0e45 Leszek Koltunski
      }
183
184
///////////////////////////////////////////////////////////////////////////////////////////////////
185
186
    private void privateRenderFirst(int index)
187
      {
188 a4d59c0b Leszek Koltunski
      TransparencySurfaceView view = findViewById(R.id.transparencySurfaceView);
189 664a0e45 Leszek Koltunski
      TransparencyRenderer renderer= view.getRenderer();
190
191
      renderer.setRenderFirst(index);
192
      mRenderFirst = index;
193
      }
194 29aba2d1 Leszek Koltunski
195
196
///////////////////////////////////////////////////////////////////////////////////////////////////
197
198
    public void onClick(View view)
199
      {
200
      CheckBox box = (CheckBox)view;
201
      boolean checked = box.isChecked();
202 a4d59c0b Leszek Koltunski
      TransparencySurfaceView sView = findViewById(R.id.transparencySurfaceView);
203 29aba2d1 Leszek Koltunski
204
      switch(box.getId())
205
        {
206
        case R.id.transparencyCheckBox0  : sView.getRenderer().setPostprocess(0,checked); break;
207
        case R.id.transparencyCheckBox1  : sView.getRenderer().setPostprocess(1,checked); break;
208
        }
209
      }
210 664a0e45 Leszek Koltunski
}