use of com.badlogic.gdx.LifecycleListener in project libgdx by libgdx.
the class LwjglAWTCanvas method stop.
public void stop() {
if (!running)
return;
running = false;
setGlobals();
Array<LifecycleListener> listeners = lifecycleListeners;
// To allow destroying of OpenGL textures during disposal.
if (canvas.isDisplayable()) {
makeCurrent();
} else {
error(logTag, "OpenGL context destroyed before application listener has had a chance to dispose of textures.");
}
synchronized (listeners) {
for (LifecycleListener listener : listeners) {
listener.pause();
listener.dispose();
}
}
listener.pause();
listener.dispose();
Gdx.app = null;
Gdx.graphics = null;
if (audio != null) {
audio.dispose();
Gdx.audio = null;
}
if (files != null)
Gdx.files = null;
if (net != null)
Gdx.net = null;
instanceCount--;
stopped();
}
use of com.badlogic.gdx.LifecycleListener in project Catacomb-Snatch by Catacomb-Snatch.
the class AndroidLauncher method initialize.
@Override
public /**
* {@inheritDoc}
*/
void initialize(ApplicationListener listener, AndroidApplicationConfiguration config) {
if (this.getVersion() < MINIMUM_SDK) {
throw new GdxRuntimeException("LibGDX requires Android API Level " + MINIMUM_SDK + " or later.");
}
//Reordered to make using Gdx.app, Gdx.graphics etc possible (due to AndroidBackend.getGdxInput)
graphics = new AndroidGraphics(this, config, config.resolutionStrategy == null ? new FillResolutionStrategy() : config.resolutionStrategy);
audio = new AndroidAudio(this, config);
// workaround for Android bug #10515463
this.getFilesDir();
files = new AndroidFiles(this.getAssets(), this.getFilesDir().getAbsolutePath());
net = new AndroidNet(this);
this.listener = listener;
this.handler = new Handler();
this.useImmersiveMode = config.useImmersiveMode;
this.hideStatusBar = config.hideStatusBar;
// Add a specialized audio lifecycle listener
addLifecycleListener(new LifecycleListener() {
@Override
public void resume() {
// No need to resume audio here
}
@Override
public void pause() {
//audio.pause(); //screw it, world shall explode as I can't change it...
}
@Override
public void dispose() {
audio.dispose();
}
});
Gdx.app = this;
Gdx.audio = this.getAudio();
Gdx.files = this.getFiles();
Gdx.graphics = this.getGraphics();
Gdx.net = this.getNet();
input = (Ouya.isRunningOnOuya() ? new OuyaInput(this, this, graphics.getView(), config) : AndroidInputFactory.newAndroidInput(this, this, graphics.getView(), config));
Gdx.input = this.getInput();
try {
requestWindowFeature(Window.FEATURE_NO_TITLE);
} catch (Exception ex) {
log("AndroidApplication", "Content already displayed, cannot request FEATURE_NO_TITLE", ex);
}
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
setContentView(graphics.getView(), createLayoutParams());
createWakeLock(config.useWakelock);
hideStatusBar(this.hideStatusBar);
useImmersiveMode(this.useImmersiveMode);
if (this.useImmersiveMode && getVersion() >= 19) {
try {
Class<?> vlistener = Class.forName("com.badlogic.gdx.backends.android.AndroidVisibilityListener");
Object o = vlistener.newInstance();
Method method = vlistener.getDeclaredMethod("createListener", AndroidApplicationBase.class);
method.invoke(o, this);
} catch (Exception e) {
log("AndroidApplication", "Failed to create AndroidVisibilityListener", e);
}
}
}
Aggregations