From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver] / android / project / xscreensaver / src / org / jwz / xscreensaver / gen / SuperquadricsService.java
1 package org.jwz.xscreensaver.gen;
2
3 import net.rbgrn.android.glwallpaperservice.*;
4 import android.content.SharedPreferences;
5 import org.jwz.xscreensaver.*;
6
7 // Original code provided by Robert Green
8 // http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers
9 public class SuperquadricsService extends GLWallpaperService {
10
11     SharedPreferences sp;
12
13     public SuperquadricsService() {
14         super();
15     }
16
17     @Override
18     public void onCreate() {
19         sp = ((XscreensaverApp)getApplication()).getThePrefs(SuperquadricsWallpaper.SHARED_PREFS_NAME);
20     }
21
22     public Engine onCreateEngine() {
23         MyEngine engine = new MyEngine();
24         return engine;
25     }
26
27     class MyEngine extends GLEngine {
28         SuperquadricsWallpaper renderer;
29         public MyEngine() {
30             super();
31             // handle prefs, other initialization
32             renderer = new SuperquadricsWallpaper();
33             setRenderer(renderer);
34             setRenderMode(RENDERMODE_CONTINUOUSLY);
35         }
36
37         public void onDestroy() {
38             super.onDestroy();
39             if (renderer != null) {
40                 renderer.release(); // assuming yours has this method - it should!
41             }
42             renderer = null;
43         }
44
45         @Override
46         public void onVisibilityChanged(boolean visible) {
47             super.onVisibilityChanged(visible);
48             if (visible) {
49                 renderer.doSP(sp);
50             }
51         }
52
53     }
54     static
55     {
56         System.loadLibrary ("xscreensaver");
57     }
58
59
60 }