/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.badlogic.gdx.backends.android;
import android.media.SoundPool;
import com.badlogic.gdx.Graphics;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.backends.android.surfaceview.FillResolutionStrategy;
import com.badlogic.gdx.backends.android.surfaceview.ResolutionStrategy;
/** Class defining the configuration of an {@link AndroidApplication}. Allows you to disable the use of the accelerometer to save
* battery among other things.
* @author mzechner */
public class AndroidApplicationConfiguration {
/** number of bits per color channel **/
public int r = 5, g = 6, b = 5, a = 0;
/** number of bits for depth and stencil buffer **/
public int depth = 16, stencil = 0;
/** number of samples for CSAA/MSAA, 2 is a good value **/
public int numSamples = 0;
/** whether to use the accelerometer. default: true **/
public boolean useAccelerometer = true;
/** whether to use the gyroscope. default: false **/
public boolean useGyroscope = false;
/** whether to use the compass. default: true **/
public boolean useCompass = true;
/** the time in milliseconds to sleep after each event in the touch handler, set this to 16ms to get rid of touch flooding on
* pre Android 2.0 devices. default: 0 **/
public int touchSleepTime = 0;
/** whether to keep the screen on and at full brightness or not while running the application. default: false. Uses FLAG_KEEP_SCREEN_ON under the hood. */
public boolean useWakelock = false;
/** hide status bar buttons on Android 4.x and higher (API 14+). Doesn't work if "android:targetSdkVersion" less 11 or if API
* less 14. default: false **/
public boolean hideStatusBar = false;
/** whether to disable Android audio support. default: false */
public boolean disableAudio = false;
/** the maximum number of {@link Sound} instances that can be played simultaneously, sets the corresponding {@link SoundPool}
* constructor argument. */
public int maxSimultaneousSounds = 16;
/** the {@link ResolutionStrategy}. default: {@link FillResolutionStrategy} **/
public ResolutionStrategy resolutionStrategy = new FillResolutionStrategy();
/** if the app is a livewallpaper, whether it should get full touch events **/
public boolean getTouchEventsForLiveWallpaper = false;
/** set this to true to enable Android 4.4 KitKat's 'Immersive mode' **/
public boolean useImmersiveMode = false;
/** Experimental, whether to enable OpenGL ES 3 if supported. If not supported it will fall-back to OpenGL ES 2.0.
* When GL ES 3* is enabled, {@link com.badlogic.gdx.Gdx#gl30} can be used to access its functionality. Requires at least Android 4.3 (API level 18).
* @deprecated this option is currently experimental and not yet fully supported, expect issues. */
@Deprecated public boolean useGL30 = false;
/** whether to use {@link com.badlogic.gdx.backends.android.surfaceview.GLSurfaceView20API18} in place of the classic
* {@link com.badlogic.gdx.backends.android.surfaceview.GLSurfaceView20} on Android API 10 and lower.
* In case this is true {@link com.badlogic.gdx.backends.android.surfaceview.GLSurfaceView20API18} will be used.
* This implementation properly supports attach to and detach from window. default: false */
public boolean useGLSurfaceView20API18 = false;
}