Project

General

Profile

« Previous | Next » 

Revision 296d2e73

Added by Leszek Koltunski over 5 years ago

Advances with the Earth app - prepare it to checking if any FRAGMENT or VERTEX effect correctly works on a Sphere mesh.

View differences:

src/main/java/org/distorted/examples/earth/EarthActivity.java
22 22
import android.app.Activity;
23 23
import android.opengl.GLSurfaceView;
24 24
import android.os.Bundle;
25
import android.view.View;
26
import android.widget.AdapterView;
27
import android.widget.ArrayAdapter;
25 28
import android.widget.SeekBar;
29
import android.widget.Spinner;
26 30

  
27 31
import org.distorted.examples.R;
32
import org.distorted.library.effect.EffectName;
33
import org.distorted.library.effect.EffectType;
28 34
import org.distorted.library.main.Distorted;
29
import org.distorted.library.main.DistortedTexture;
30
import org.distorted.library.mesh.MeshBase;
31
import org.distorted.library.mesh.MeshSphere;
32 35

  
33 36
///////////////////////////////////////////////////////////////////////////////////////////////////
34 37

  
35
public class EarthActivity extends Activity implements SeekBar.OnSeekBarChangeListener
38
public class EarthActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
36 39
{
37
    private static final int SIZE = 100;
38
    private static final int LEVEL=  32;
39

  
40
    private DistortedTexture mTexture;
41
    private MeshBase mMesh;
40
    private EffectName[] mEffectNames;
42 41

  
43 42
///////////////////////////////////////////////////////////////////////////////////////////////////
44
    
43

  
45 44
    @Override
46 45
    protected void onPause() 
47 46
      {
48
      GLSurfaceView mView = this.findViewById(R.id.earthSurfaceView);
49
      if( mView!=null ) mView.onPause();
47
      GLSurfaceView view = this.findViewById(R.id.earthSurfaceView);
48
      if( view!=null ) view.onPause();
49

  
50
      EarthSurfaceViewPicker pick = this.findViewById(R.id.earthSurfaceViewPicker);
51
      if( pick!=null ) pick.onPause();
50 52

  
51 53
      Distorted.onPause();
52 54
      super.onPause();
......
59 61
      {
60 62
      super.onResume();
61 63
      
62
      GLSurfaceView mView = this.findViewById(R.id.earthSurfaceView);
63
      if( mView!=null ) mView.onResume();  
64
      GLSurfaceView view = this.findViewById(R.id.earthSurfaceView);
65
      if( view!=null ) view.onResume();
66

  
67
      EarthSurfaceViewPicker pick = this.findViewById(R.id.earthSurfaceViewPicker);
68
      if( pick!=null ) pick.onResume();
64 69
      }
65 70
    
66 71
///////////////////////////////////////////////////////////////////////////////////////////////////
......
79 84
      {
80 85
      super.onCreate(savedState);
81 86

  
82
      mMesh = new MeshSphere(LEVEL);
83
      mTexture= new DistortedTexture(SIZE,SIZE);
84

  
85 87
      setContentView(R.layout.earthlayout);
86 88

  
87 89
      SeekBar levelBar = findViewById(R.id.earthInflateLevel);
88 90
      levelBar.setOnSeekBarChangeListener(this);
89 91
      levelBar.setProgress(50);
92

  
93
      Spinner renderSpinner  = findViewById(R.id.earthSpinnerEffect);
94
      renderSpinner.setOnItemSelectedListener(this);
95

  
96
      ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, createEffectNames() );
97
      adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
98
      renderSpinner.setAdapter(adapterBitmap);
99
      }
100

  
101

  
102
///////////////////////////////////////////////////////////////////////////////////////////////////
103

  
104
    @Override
105
    public void onSaveInstanceState(Bundle savedInstanceState)
106
      {
107
      super.onSaveInstanceState(savedInstanceState);
108

  
109
      EarthSurfaceViewPicker pick = this.findViewById(R.id.earthSurfaceViewPicker);
110
      pick.save(savedInstanceState);
111
      }
112

  
113
///////////////////////////////////////////////////////////////////////////////////////////////////
114

  
115
    @Override
116
    public void onRestoreInstanceState(Bundle savedInstanceState)
117
      {
118
      super.onRestoreInstanceState(savedInstanceState);
119

  
120
      EarthSurfaceViewPicker pick = this.findViewById(R.id.earthSurfaceViewPicker);
121
      pick.restore(savedInstanceState);
90 122
      }
91 123

  
92 124
///////////////////////////////////////////////////////////////////////////////////////////////////
......
111 143

  
112 144
///////////////////////////////////////////////////////////////////////////////////////////////////
113 145

  
114
    public DistortedTexture getTexture()
146
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
115 147
      {
116
      return mTexture;
148
      EarthSurfaceViewPicker mPick = this.findViewById(R.id.earthSurfaceViewPicker);
149
      mPick.setEffectMode(mEffectNames[pos]);
117 150
      }
118 151

  
119 152
///////////////////////////////////////////////////////////////////////////////////////////////////
120 153

  
121
    public MeshBase getMesh()
154
    public void onNothingSelected(AdapterView<?> parent) { }
155

  
156
///////////////////////////////////////////////////////////////////////////////////////////////////
157

  
158
    public void Remove(View v)
122 159
      {
123
      return mMesh;
160
      EarthSurfaceViewPicker mPick = this.findViewById(R.id.earthSurfaceViewPicker);
161
      mPick.clearPoints();
162

  
163
      EarthSurfaceView view = this.findViewById(R.id.earthSurfaceView);
164
      EarthRenderer renderer = view.getRenderer();
165

  
166
      renderer.removeAll();
167
      }
168

  
169
///////////////////////////////////////////////////////////////////////////////////////////////////
170

  
171
    void addNewPoint(float x, float y, EffectName effect)
172
      {
173
      EarthSurfaceView view = this.findViewById(R.id.earthSurfaceView);
174
      EarthRenderer renderer = view.getRenderer();
175

  
176
      renderer.addNewPoint(x,y,effect);
177
      }
178

  
179
///////////////////////////////////////////////////////////////////////////////////////////////////
180

  
181
    private String[] createEffectNames()
182
      {
183
      EffectType type;
184
      EffectName[] names = EffectName.values();
185

  
186
      int numEffects=0;
187

  
188
      for(int i=0; i<names.length; i++)
189
        {
190
        type = names[i].getType();
191
        if (type == EffectType.FRAGMENT || type == EffectType.VERTEX) numEffects++;
192
        }
193

  
194
      mEffectNames = new EffectName[numEffects];
195
      String[] effectStrings = new String[numEffects];
196

  
197
      numEffects=0;
198

  
199
      for(int i=0; i<names.length; i++)
200
        {
201
        type = names[i].getType();
202

  
203
        if (type == EffectType.FRAGMENT || type == EffectType.VERTEX)
204
          {
205
          mEffectNames[numEffects]  = names[i];
206
          effectStrings[numEffects] = names[i].name();
207

  
208
          numEffects++;
209
          }
210
        }
211

  
212
      return effectStrings;
124 213
      }
125 214
}

Also available in: Unified diff