Skip to content

Instantly share code, notes, and snippets.

@ajaychandran
Created February 1, 2016 04:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajaychandran/a0c0a2ac4f95b1fbee10 to your computer and use it in GitHub Desktop.
Save ajaychandran/a0c0a2ac4f95b1fbee10 to your computer and use it in GitHub Desktop.
Test for com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window lifecycle
package gdx;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl3.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class WindowTest {
public static void main(String[] args) {
System.out.println("starting window test...");
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
new Lwjgl3Application(new ApplicationAdapter() {
public Lwjgl3WindowConfiguration config() {
Lwjgl3WindowConfiguration configuration = new Lwjgl3WindowConfiguration();
configuration.setWindowPosition(100, 100);
configuration.setWindowedMode(100, 100);
configuration.setWindowListener(new Lwjgl3WindowListener() {
Boolean created = false;
public void iconified() {
System.out.println("window iconified");
}
public void deiconified() {
if (created) System.out.println("window de-iconified");
else {
created = true;
System.out.println("window de-iconified (on create)");
}
}
public void focusLost() {
System.out.println("window lost focus");
}
public void focusGained() {
System.out.println("window gained focus");
}
public boolean windowIsClosing() {
System.out.println("window is closing");
return true;
}
});
return configuration;
}
public void minimize(Lwjgl3Window window) {
System.out.println("trying to minimize window");
window.iconifyWindow();
}
public void restore(Lwjgl3Window window) {
System.out.println("trying to restore window");
window.deiconifyWindow();
}
public void create() {
Lwjgl3Application app = (Lwjgl3Application) Gdx.app;
Lwjgl3Window window = app.newWindow(new ApplicationAdapter() {
}, config());
service.schedule(() -> window.postRunnable(() -> minimize(window)), 2, TimeUnit.SECONDS);
service.schedule(() -> window.postRunnable(() -> restore(window)), 4, TimeUnit.SECONDS);
service.schedule(app::exit, 6, TimeUnit.SECONDS);
}
}, new Lwjgl3ApplicationConfiguration());
System.out.println("window test completed");
service.shutdown();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment