package com.github.czyzby.kiwi.util.gdx;
import com.badlogic.gdx.Application.ApplicationType;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputMultiplexer;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
/** Provides generic utilities for pretty much any LibGDX application.
*
* @author MJ */
public class GdxUtilities {
private GdxUtilities() {
}
/** Clears the screen with black color. */
public static void clearScreen() {
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
/** Application's input processor will be set to null. */
public static void clearInputProcessor() {
Gdx.input.setInputProcessor(null);
}
/** Application's input processor will be set to a multiplexer with multiple passed processors. */
public static void setMultipleInputProcessors(final InputProcessor... processors) {
Gdx.input.setInputProcessor(new InputMultiplexer(processors));
}
/** @return a new vector2 storing windows' width and height as x and y. */
public static Vector2 getScreenSize() {
return new Vector2(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
/** @return the passed vector2 storing windows' width and height as x and y. */
public static Vector2 getScreenSize(final Vector2 result) {
return result.set(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
/** @return a new vector2 storing current cursor position. */
public static Vector2 getCursorPosition() {
return new Vector2(Gdx.input.getX(), Gdx.input.getY());
}
/** @return the passed vector2 storing current cursor position. */
public static Vector2 getCursorPosition(final Vector2 result) {
return result.set(Gdx.input.getX(), Gdx.input.getY());
}
/** @return a new vector3 storing current accelerometer data. */
public static Vector3 getAccelerometerData() {
return new Vector3(Gdx.input.getAccelerometerX(), Gdx.input.getAccelerometerY(), Gdx.input.getAccelerometerZ());
}
/** @return the passed vector3 storing current accelerometer data. */
public static Vector3 getAccelerometerData(final Vector3 result) {
return result.set(Gdx.input.getAccelerometerX(), Gdx.input.getAccelerometerY(), Gdx.input.getAccelerometerZ());
}
public static boolean isRunningOnApplet() {
return Gdx.app.getType() == ApplicationType.Applet;
}
public static boolean isRunningOnAndroid() {
return Gdx.app.getType() == ApplicationType.Android;
}
public static boolean isRunningOnDesktop() {
return Gdx.app.getType() == ApplicationType.Desktop;
}
public static boolean isRunningOnIOS() {
return Gdx.app.getType() == ApplicationType.iOS;
}
public static boolean isRunningOnGwt() {
return Gdx.app.getType() == ApplicationType.WebGL;
}
public static boolean isHeadless() {
return Gdx.app.getType() == ApplicationType.HeadlessDesktop;
}
}