Project

General

Profile

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

examples / src / main / java / org / distorted / examples / transparency / TransparencyActivity.java @ 77e66c58

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 77e66c58 Leszek Koltunski
    int pid = parent.getId();
87
88
    if( pid == R.id.transparency_spinnerFirst ) privateRenderFirst(pos);
89
    if( pid == R.id.transparency_spinnerMode  ) setRenderModeToOIT(pos==1);
90 a935e9db Leszek Koltunski
    }
91
92
///////////////////////////////////////////////////////////////////////////////////////////////////
93
94
  public void onNothingSelected(AdapterView<?> parent)
95
    {
96
    }
97
98 664a0e45 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
99
    
100
    @Override
101
    protected void onPause() 
102
      {
103 c0f27889 Leszek Koltunski
      super.onPause();
104 a4d59c0b Leszek Koltunski
      GLSurfaceView view = findViewById(R.id.transparencySurfaceView);
105 664a0e45 Leszek Koltunski
      view.onPause();
106 e3900503 Leszek Koltunski
      DistortedLibrary.onPause();
107 664a0e45 Leszek Koltunski
      }
108
109
///////////////////////////////////////////////////////////////////////////////////////////////////
110
    
111
    @Override
112
    protected void onResume() 
113
      {
114
      super.onResume();
115 a4d59c0b Leszek Koltunski
      GLSurfaceView view = findViewById(R.id.transparencySurfaceView);
116 664a0e45 Leszek Koltunski
      view.onResume();
117
      }
118
    
119
///////////////////////////////////////////////////////////////////////////////////////////////////
120
    
121
    @Override
122
    protected void onDestroy() 
123
      {
124 e3900503 Leszek Koltunski
      DistortedLibrary.onDestroy();
125 664a0e45 Leszek Koltunski
      super.onDestroy();
126
      }
127
128
///////////////////////////////////////////////////////////////////////////////////////////////////
129
130
    @Override
131
    public void onSaveInstanceState(Bundle savedInstanceState)
132
      {
133
      super.onSaveInstanceState(savedInstanceState);
134
      savedInstanceState.putInt("render", mRenderFirst);
135
      }
136
137
///////////////////////////////////////////////////////////////////////////////////////////////////
138
139
    @Override
140
    public void onRestoreInstanceState(Bundle savedInstanceState)
141
      {
142
      super.onRestoreInstanceState(savedInstanceState);
143
144
      mRenderFirst= savedInstanceState.getInt("render");
145
      privateRenderFirst(mRenderFirst);
146
      }
147
148
///////////////////////////////////////////////////////////////////////////////////////////////////
149
150
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
151
      {
152 77e66c58 Leszek Koltunski
      int id = bar.getId();
153
      TransparencySurfaceView v = findViewById(R.id.transparencySurfaceView);
154
      TransparencyRenderer r = v.getRenderer();
155
156
      if( id == R.id.transparencySeekRed    ) r.setTransparency(0, (float)progress/100 );
157
      if( id == R.id.transparencySeekYellow ) r.setTransparency(1, (float)progress/100 );
158 664a0e45 Leszek Koltunski
      }
159
160
///////////////////////////////////////////////////////////////////////////////////////////////////
161
162
    public void onStartTrackingTouch(SeekBar bar) { }
163
164
///////////////////////////////////////////////////////////////////////////////////////////////////
165
166
    public void onStopTrackingTouch(SeekBar bar)  { }
167
168
///////////////////////////////////////////////////////////////////////////////////////////////////
169
170 a935e9db Leszek Koltunski
    private void setRenderModeToOIT(boolean oit)
171 664a0e45 Leszek Koltunski
      {
172 a4d59c0b Leszek Koltunski
      TransparencySurfaceView view = findViewById(R.id.transparencySurfaceView);
173 a935e9db Leszek Koltunski
      TransparencyRenderer renderer= view.getRenderer();
174
175
      renderer.setRenderModeToOIT(oit);
176 664a0e45 Leszek Koltunski
      }
177
178
///////////////////////////////////////////////////////////////////////////////////////////////////
179
180
    private void privateRenderFirst(int index)
181
      {
182 a4d59c0b Leszek Koltunski
      TransparencySurfaceView view = findViewById(R.id.transparencySurfaceView);
183 664a0e45 Leszek Koltunski
      TransparencyRenderer renderer= view.getRenderer();
184
185
      renderer.setRenderFirst(index);
186
      mRenderFirst = index;
187
      }
188 29aba2d1 Leszek Koltunski
189
190
///////////////////////////////////////////////////////////////////////////////////////////////////
191
192
    public void onClick(View view)
193
      {
194
      CheckBox box = (CheckBox)view;
195
      boolean checked = box.isChecked();
196 77e66c58 Leszek Koltunski
      TransparencySurfaceView v = findViewById(R.id.transparencySurfaceView);
197
      TransparencyRenderer r = v.getRenderer();
198
      int id = box.getId();
199 29aba2d1 Leszek Koltunski
200 77e66c58 Leszek Koltunski
      if( id == R.id.transparencyCheckBox0 ) r.setPostprocess(0,checked);
201
      if( id == R.id.transparencyCheckBox1 ) r.setPostprocess(1,checked);
202 29aba2d1 Leszek Koltunski
      }
203 664a0e45 Leszek Koltunski
}