Project

General

Profile

« Previous | Next » 

Revision aedd9013

Added by Leszek Koltunski almost 7 years ago

First try to convert the Stencil app to a dual (directly to Screen / through intermediate Framebuffer) mode.
Doesn't work yet ( API is inconvenient / plain wrong )

View differences:

src/main/java/org/distorted/examples/stencil/StencilActivity.java
21 21

  
22 22
import android.app.Activity;
23 23
import android.os.Bundle;
24
import android.view.View;
24 25

  
26
import org.distorted.examples.R;
25 27
import org.distorted.library.Distorted;
26 28

  
27 29
///////////////////////////////////////////////////////////////////////////////////////////////////
28 30

  
29 31
public class StencilActivity extends Activity
30 32
{
31
    private StencilSurfaceView mView;
33
    private boolean mScreen;
32 34

  
33 35
///////////////////////////////////////////////////////////////////////////////////////////////////
34 36

  
35 37
    @Override
36
    protected void onCreate(Bundle icicle)
38
    protected void onCreate(Bundle savedState)
37 39
      {
38
      super.onCreate(icicle);
39
      mView = new StencilSurfaceView(this);
40
      setContentView(mView);
40
      super.onCreate(savedState);
41
      setContentView(R.layout.stencillayout);
42

  
43
      if( savedState==null )
44
        {
45
        mScreen = true;
46
        }
41 47
      }
42 48

  
43 49
///////////////////////////////////////////////////////////////////////////////////////////////////
......
45 51
    @Override
46 52
    protected void onPause() 
47 53
      {
48
      mView.onPause();
54
      StencilSurfaceView view = (StencilSurfaceView) this.findViewById(R.id.stencilSurfaceView);
55

  
56
      view.onPause();
49 57
      Distorted.onPause();
50 58
      super.onPause();
51 59
      }
......
55 63
    @Override
56 64
    protected void onResume() 
57 65
      {
66
      StencilSurfaceView view = (StencilSurfaceView) this.findViewById(R.id.stencilSurfaceView);
67

  
58 68
      super.onResume();
59
      mView.onResume();
69
      view.onResume();
60 70
      }
61 71
    
62 72
///////////////////////////////////////////////////////////////////////////////////////////////////
......
67 77
      Distorted.onDestroy();
68 78
      super.onDestroy();
69 79
      }
70
    
80

  
81
///////////////////////////////////////////////////////////////////////////////////////////////////
82

  
83
    public void Screen(View v)
84
      {
85
      StencilSurfaceView view = (StencilSurfaceView) this.findViewById(R.id.stencilSurfaceView);
86
      StencilRenderer renderer = view.getRenderer();
87

  
88
      renderer.setScreen(true);
89
      mScreen = true;
90
      }
91

  
92
///////////////////////////////////////////////////////////////////////////////////////////////////
93

  
94
    public void Framebuffer(View v)
95
      {
96
      StencilSurfaceView view = (StencilSurfaceView) this.findViewById(R.id.stencilSurfaceView);
97
      StencilRenderer renderer = view.getRenderer();
98

  
99
      renderer.setScreen(false);
100
      mScreen = false;
101
      }
102

  
103
///////////////////////////////////////////////////////////////////////////////////////////////////
104

  
105
    @Override
106
    public void onSaveInstanceState(Bundle savedInstanceState)
107
      {
108
      super.onSaveInstanceState(savedInstanceState);
109
      savedInstanceState.putBoolean("screen", mScreen);
110
      }
111

  
112
///////////////////////////////////////////////////////////////////////////////////////////////////
113

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

  
119
      mScreen = savedInstanceState.getBoolean("screen");
120

  
121
      if(mScreen) Screen(null);
122
      else        Framebuffer(null);
123
      }
71 124
}

Also available in: Unified diff