v0.9.4: updated libGDX to 1.10.0, dropping support for Android 2.3/3

This commit is contained in:
Evan Debenham 2021-06-23 20:29:13 -04:00
parent cd8abf720c
commit 9b63eb5e09
12 changed files with 23 additions and 62 deletions

View File

@ -7,7 +7,6 @@ dependencies {
//TODO migrate this to implementation from api
//in order to do this I have to remove 100% of libGDX API access from core
api "com.badlogicgames.gdx:gdx:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
//noinspection GradleDependency , later JSON versions cause crashes on old versions of android

View File

@ -109,8 +109,8 @@ public class InputHandler extends InputAdapter {
// ********************
@Override
public boolean scrolled(int amount) {
ScrollEvent.addScrollEvent( new ScrollEvent(pointerHoverPos, amount));
public boolean scrolled(float amountX, float amountY) {
ScrollEvent.addScrollEvent( new ScrollEvent(pointerHoverPos, amountY));
return true;
}
}

View File

@ -29,9 +29,9 @@ import java.util.ArrayList;
public class ScrollEvent {
public PointF pos;
public int amount;
public float amount;
public ScrollEvent(PointF mousePos, int amount){
public ScrollEvent(PointF mousePos, float amount){
this.amount = amount;
this.pos = mousePos;
}

View File

@ -64,7 +64,7 @@ public class DeviceCompat {
}
public static void openURI( String URI ){
Game.platform.openURI(URI);
Gdx.net.openURI(URI);
}
public static void log( String tag, String message ){

View File

@ -30,10 +30,6 @@ public abstract class PlatformSupport {
public abstract void updateSystemUI();
public abstract boolean connectedToUnmeteredNetwork();
//FIXME this is a temporary method to workaround a bug in libGDX with Android 11+
//it can be removed once Shattered is updated to libGDX 1.9.14+
public abstract boolean openURI( String URI );
//FIXME this is currently used because no platform-agnostic text input has been implemented.
//should look into doing that using either plain openGL or libgdx's libraries

View File

@ -60,15 +60,11 @@ dependencies {
implementation project(':core')
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
@ -79,19 +75,17 @@ dependencies {
// the natives configuration, and extracts them to the proper libs/ folders
// so they get packed with the APK.
task copyAndroidNatives() {
file("libs/armeabi/").mkdirs()
file("libs/armeabi-v7a/").mkdirs()
file("libs/arm64-v8a/").mkdirs()
file("libs/x86_64/").mkdirs()
file("libs/x86/").mkdirs()
file("libs/x86_64/").mkdirs()
configurations.natives.copy().files.each { jar ->
def outputDir = null
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
if(outputDir != null) {
copy {
from zipTree(jar)

View File

@ -173,23 +173,6 @@ public class AndroidPlatformSupport extends PlatformSupport {
}
}
@Override
public boolean openURI(String URI) {
//copied from LibGDX 1.9.14 source
final Uri uri = Uri.parse(URI);
try {
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// LiveWallpaper and Daydream applications need this flag
if (!(((AndroidApplication)Gdx.app).getContext() instanceof Activity)) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
((AndroidApplication)Gdx.app).startActivity(intent);
return true;
} catch (ActivityNotFoundException e) {
return false;
}
}
@Override
public void promptTextInput(final String title, final String hintText, final int maxLen, final boolean multiLine, final String posTxt, final String negTxt, final TextCallback callback) {
Game.runOnRenderThread( new Callback() {

View File

@ -20,10 +20,10 @@ allprojects {
appJavaCompatibility = JavaVersion.VERSION_1_8
appAndroidCompileSDK = 30
appAndroidMinSDK = 9
appAndroidMinSDK = 14
appAndroidTargetSDK = 30
gdxVersion = '1.9.10'
gdxVersion = '1.10.0'
}
version = appVersionName

View File

@ -63,10 +63,10 @@ dependencies {
implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
//we use LWJGL tinyFD directly to display crash messages and (for now) single-line text input
implementation "org.lwjgl:lwjgl-tinyfd:3.2.1"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.1:natives-windows"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.1:natives-macos"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.1:natives-linux"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3:natives-windows"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3:natives-macos"
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3:natives-linux"
//Need these at compile time to prevent errors there.
// The actual dependency used at runtime will vary based on source set.

View File

@ -143,7 +143,12 @@ public class DesktopLauncher {
config.setWindowSizeLimits( 480, 320, -1, -1 );
Point p = SPDSettings.windowResolution();
config.setWindowedMode( p.x, p.y );
config.setAutoIconify( true );
config.setMaximized(SPDSettings.windowMaximized());
if (SPDSettings.fullscreen()) {
config.setFullscreenMode(Lwjgl3ApplicationConfiguration.getDisplayMode());
}
//we set fullscreen/maximized in the listener as doing it through the config seems to be buggy
DesktopWindowListener listener = new DesktopWindowListener();

View File

@ -41,6 +41,7 @@ public class DesktopPlatformSupport extends PlatformSupport {
@Override
public void updateDisplaySize() {
//FIXME we still set window resolution when game becomes maximized =/
if (!SPDSettings.fullscreen()) {
SPDSettings.windowResolution( new Point( Game.width, Game.height ) );
}
@ -66,11 +67,6 @@ public class DesktopPlatformSupport extends PlatformSupport {
return true; //no easy way to check this in desktop, just assume user doesn't care
}
@Override
public boolean openURI(String URI) {
return Gdx.net.openURI(URI);
}
@Override
//FIXME tinyfd_inputBox isn't a full solution for this. No support for multiline, looks ugly. Ideally we'd have an opengl-based input box
public void promptTextInput(String title, String hintText, int maxLen, boolean multiLine, String posTxt, String negTxt, TextCallback callback) {

View File

@ -29,19 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.SPDSettings;
public class DesktopWindowListener implements Lwjgl3WindowListener {
@Override
public void created ( Lwjgl3Window lwjgl3Window ) {
if (SPDSettings.fullscreen()){
lwjgl3Window.postRunnable( new Runnable() {
@Override
public void run () {
Gdx.graphics.setFullscreenMode( Gdx.graphics.getDisplayMode() );
}
} );
}
if (SPDSettings.windowMaximized()) {
lwjgl3Window.maximizeWindow();
}
}
public void created ( Lwjgl3Window lwjgl3Window ) { }
@Override
public void maximized ( boolean b ) {