Project

General

Profile

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

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

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.transparency;
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.AdapterView;
27
import android.widget.ArrayAdapter;
28
import android.widget.SeekBar;
29
import android.widget.Spinner;
30

    
31
import org.distorted.examples.R;
32
import org.distorted.library.main.Distorted;
33

    
34
///////////////////////////////////////////////////////////////////////////////////////////////////
35

    
36
public class TransparencyActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
37
{
38
    private int mRenderFirst;
39

    
40
///////////////////////////////////////////////////////////////////////////////////////////////////
41

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

    
48
      SeekBar barRed    = (SeekBar)findViewById(R.id.transparencySeekRed);
49
      SeekBar barYellow = (SeekBar)findViewById(R.id.transparencySeekYellow);
50

    
51
      barRed.setOnSeekBarChangeListener(this);
52
      barYellow.setOnSeekBarChangeListener(this);
53

    
54
      if( savedState==null )
55
        {
56
        barRed.setProgress(50);
57
        barYellow.setProgress(50);
58
        privateRenderFirst(0);
59
        }
60

    
61
      Spinner typeSpinner  = (Spinner)findViewById(R.id.transparency_spinnerFirst);
62
      typeSpinner.setOnItemSelectedListener(this);
63

    
64
      String[] objectType = new String[] {"First: Red", "First: Yellow"};
65

    
66
      ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType);
67
      adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
68
      typeSpinner.setAdapter(adapterType);
69

    
70
      Spinner bitmapSpinner  = (Spinner)findViewById(R.id.transparency_spinnerMode);
71
      bitmapSpinner.setOnItemSelectedListener(this);
72

    
73
      String[] objectBitmap = new String[] { "Render: Normal", "Render: OIT" };
74

    
75
      ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
76
      adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
77
      bitmapSpinner.setAdapter(adapterBitmap);
78
      }
79

    
80
///////////////////////////////////////////////////////////////////////////////////////////////////
81

    
82
  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
83
    {
84
    switch(parent.getId())
85
      {
86
      case R.id.transparency_spinnerFirst  : privateRenderFirst(pos);
87
                                             break;
88
      case R.id.transparency_spinnerMode   : setRenderModeToOIT(pos==1);
89
                                             break;
90
      }
91
    }
92

    
93
///////////////////////////////////////////////////////////////////////////////////////////////////
94

    
95
  public void onNothingSelected(AdapterView<?> parent)
96
    {
97
    }
98

    
99
///////////////////////////////////////////////////////////////////////////////////////////////////
100
    
101
    @Override
102
    protected void onPause() 
103
      {
104
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.transparencySurfaceView);
105
      view.onPause();
106
      Distorted.onPause();
107
      super.onPause();
108
      }
109

    
110
///////////////////////////////////////////////////////////////////////////////////////////////////
111
    
112
    @Override
113
    protected void onResume() 
114
      {
115
      super.onResume();
116
      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.transparencySurfaceView);
117
      view.onResume();
118
      }
119
    
120
///////////////////////////////////////////////////////////////////////////////////////////////////
121
    
122
    @Override
123
    protected void onDestroy() 
124
      {
125
      Distorted.onDestroy();  
126
      super.onDestroy();
127
      }
128

    
129
///////////////////////////////////////////////////////////////////////////////////////////////////
130

    
131
    @Override
132
    public void onSaveInstanceState(Bundle savedInstanceState)
133
      {
134
      super.onSaveInstanceState(savedInstanceState);
135
      savedInstanceState.putInt("render", mRenderFirst);
136
      }
137

    
138
///////////////////////////////////////////////////////////////////////////////////////////////////
139

    
140
    @Override
141
    public void onRestoreInstanceState(Bundle savedInstanceState)
142
      {
143
      super.onRestoreInstanceState(savedInstanceState);
144

    
145
      mRenderFirst= savedInstanceState.getInt("render");
146
      privateRenderFirst(mRenderFirst);
147
      }
148

    
149
///////////////////////////////////////////////////////////////////////////////////////////////////
150

    
151
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
152
      {
153
      switch (bar.getId())
154
        {
155
        case R.id.transparencySeekRed:    TransparencySurfaceView view0 = (TransparencySurfaceView) this.findViewById(R.id.transparencySurfaceView);
156
                                          view0.getRenderer().setTransparency(0, (float)progress/100 );
157
                                          break;
158
        case R.id.transparencySeekYellow: TransparencySurfaceView view1 = (TransparencySurfaceView) this.findViewById(R.id.transparencySurfaceView);
159
                                          view1.getRenderer().setTransparency(1, (float)progress/100 );
160
                                          break;
161
        }
162
      }
163

    
164
///////////////////////////////////////////////////////////////////////////////////////////////////
165

    
166
    public void onStartTrackingTouch(SeekBar bar) { }
167

    
168
///////////////////////////////////////////////////////////////////////////////////////////////////
169

    
170
    public void onStopTrackingTouch(SeekBar bar)  { }
171

    
172
///////////////////////////////////////////////////////////////////////////////////////////////////
173

    
174
    private void setRenderModeToOIT(boolean oit)
175
      {
176
      TransparencySurfaceView view = (TransparencySurfaceView) this.findViewById(R.id.transparencySurfaceView);
177
      TransparencyRenderer renderer= view.getRenderer();
178

    
179
      renderer.setRenderModeToOIT(oit);
180
      }
181

    
182
///////////////////////////////////////////////////////////////////////////////////////////////////
183

    
184
    private void privateRenderFirst(int index)
185
      {
186
      TransparencySurfaceView view = (TransparencySurfaceView) this.findViewById(R.id.transparencySurfaceView);
187
      TransparencyRenderer renderer= view.getRenderer();
188

    
189
      renderer.setRenderFirst(index);
190
      mRenderFirst = index;
191
      }
192
}
(1-1/3)