update to latest engine release candidate

This commit is contained in:
2025-10-11 18:10:45 +02:00
parent 04bd2ee3e4
commit e020b64c86
74 changed files with 3862 additions and 889 deletions

View File

@@ -6,6 +6,12 @@ plugins {
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
dependencies {
testImplementation libs.junit
@@ -16,11 +22,17 @@ dependencies {
implementation project(':app')
}
application {
mainClass = "org.ngengine.platform.DesktopLauncher"
}
configurations {
nativeImageCompileOnly {
canBeResolved = true
}
}
run {
jvmArgs = [
"-Djava.util.logging.config.file=${rootProject.projectDir}/dev-logging.properties",
@@ -43,8 +55,6 @@ shadowJar {
}
build.dependsOn shadowJar
graalvmNative {
toolchainDetection = true
metadataRepository {
@@ -84,9 +94,9 @@ graalvmNative {
]
// Add G1 GC only if linux
if (org.gradle.internal.os.OperatingSystem.current().isLinux()) {
arguments.add('--gc=G1')
}
// if (org.gradle.internal.os.OperatingSystem.current().isLinux()) {
// arguments.add('--gc=G1')
// }
buildArgs.addAll(arguments)
sharedLibrary = false
@@ -94,11 +104,6 @@ graalvmNative {
}
}
configurations {
nativeImageCompileOnly {
canBeResolved = true
}
}
def getOsName(){
def osName = org.gradle.internal.os.OperatingSystem.current().getName().toLowerCase()
@@ -116,8 +121,6 @@ def getOsName(){
task traceNative(type: JavaExec) {
group = 'graalvm'
description = 'Trace reflection and resource usage'
mainClass = application.mainClass.get()
classpath = sourceSets.main.runtimeClasspath
jvmArgs = [
@@ -152,8 +155,6 @@ task traceNative(type: JavaExec) {
task buildNativeExecutable {
group = 'graalvm'
description = 'Build native executable for current platform'
dependsOn 'nativeCompile'
doLast {
def buildDirNative = "${project.buildDir}/native/nativeCompile"
@@ -185,84 +186,10 @@ task buildNativeExecutable {
def jpackage(installerType, distDir){
def os = org.gradle.internal.os.OperatingSystem.current()
def jarFile = shadowJar.archiveFile.get().asFile
def jarDir = jarFile.parentFile
def mainClass = application.mainClass.get()
def shadowJarFile = shadowJar.archiveFile.get().asFile
def commandLine = [
'jpackage',
'--input', jarDir.absolutePath,
'--main-jar', jarFile.name,
'--main-class', mainClass,
'--name', rootProject.name,
'--app-version', project.version,
'--type', installerType,
'--dest', distDir,
'--java-options', project.findProperty('javaOptions') ?: '',
'--copyright', project.findProperty('copyright')
]
// Optional: platform-specific flags
if (os.isWindows()) {
commandLine += ['--win-menu', '--win-shortcut']
} else if (os.isMacOsX()) {
commandLine += ['--icon', "${rootProject.projectDir}/icon.icns"]
} else if (os.isLinux()) {
commandLine += ['--icon', "${rootProject.projectDir}/icon.png"]
}
return commandLine
}
task buildInstaller(type: DefaultTask) {
group = 'distribution'
description = 'Create native installer using jpackage'
dependsOn shadowJar
def os = org.gradle.internal.os.OperatingSystem.current()
def osName = getOsName()
def osArch = System.getProperty("os.arch").toLowerCase()
def buildName = "${rootProject.name}-${project.version}-${osName}-${osArch}-SETUP";
def distDir = file("${rootProject.projectDir}/dist/${buildName}.setup")
task buildPortable {
dependsOn shadowJar
doLast {
if (distDir.exists()) {
println "Deleting existing output directory: ${distDir}"
delete distDir
}
if(os.isWindows()){
exec {
commandLine jpackage('exe', distDir)
}
} else if(os.isMacOsX()){
exec {
commandLine jpackage('dmg', distDir)
}
} else if(os.isLinux()){
exec {
commandLine jpackage('deb', distDir)
}
exec {
commandLine jpackage('rpm', distDir)
}
}
println "Portable JAR created: ${shadowJar.destinationDirectory}/${shadowJar.archiveFileName.get()}"
}
}
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

View File

@@ -2,10 +2,12 @@ package org.ngengine.platform;
import org.ngengine.app.Main;
import org.ngengine.platform.jvm.JVMAsyncPlatform;
import java.io.IOException;
import org.ngengine.NGEApplication.NGEAppRunner;
public class DesktopLauncher {
public static void main(String[] args) {
public static void main(String[] args) throws IOException {
NGEPlatform.set(new JVMAsyncPlatform());
NGEAppRunner runner = Main.main(args);
runner.start();

View File

@@ -57,12 +57,6 @@
{
"type": "[Lcom.simsilica.lemur.focus.FocusChangeListener;"
},
{
"type": "[Lcom.simsilica.lemur.input.AnalogFunctionListener;"
},
{
"type": "[Lcom.simsilica.lemur.input.StateFunctionListener;"
},
{
"type": "[Ljava.awt.event.MouseMotionListener;"
},
@@ -75,24 +69,6 @@
}
]
},
{
"type": "com.bulletphysics.collision.dispatch.CompoundCollisionAlgorithm",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.dispatch.ConvexConvexAlgorithm",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.dispatch.UnionFind$Element",
"methods": [
@@ -102,87 +78,6 @@
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.DiscreteCollisionDetectorInterface$ClosestPointInput",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.GjkEpaSolver$Face",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.GjkEpaSolver$He",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.GjkEpaSolver$Mkv",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.ManifoldPoint",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.PersistentManifold",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.collision.narrowphase.VoronoiSimplexSolver$SubSimplexClosestResult",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.dynamics.constraintsolver.SolverBody",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.bulletphysics.dynamics.constraintsolver.SolverConstraint",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.jme3.asset.CloneableAssetProcessor",
"methods": [
@@ -273,15 +168,6 @@
{
"type": "com.jme3.cursors.plugins.CursorLoader"
},
{
"type": "com.jme3.export.SavableWrapSerializable",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.jme3.export.binary.BinaryLoader"
},
@@ -294,24 +180,6 @@
}
]
},
{
"type": "com.jme3.light.PointLight",
"methods": [
{
"name": "clone",
"parameterTypes": []
}
]
},
{
"type": "com.jme3.light.SpotLight",
"methods": [
{
"name": "clone",
"parameterTypes": []
}
]
},
{
"type": "com.jme3.material.Material",
"methods": [
@@ -482,15 +350,6 @@
}
]
},
{
"type": "com.jme3.scene.plugins.gltf.LightsPunctualExtensionLoader",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "com.jme3.scene.plugins.gltf.UserDataLoader",
"methods": [
@@ -578,9 +437,6 @@
{
"type": "com.jme3.texture.plugins.AWTLoader"
},
{
"type": "com.jme3.texture.plugins.AWTWebpImageLoader"
},
{
"type": "com.jme3.texture.plugins.DDSLoader"
},
@@ -1230,8 +1086,7 @@
},
{
"type": "java.nio.DirectFloatBufferU",
"allDeclaredFields": true,
"unsafeAllocated": true
"allDeclaredFields": true
},
{
"type": "java.nio.DirectIntBufferU",
@@ -3152,9 +3007,6 @@
},
{
"type": "org.ngengine.nostr4j.signer.NostrNIP46Signer"
},
{
"type": "org.ngengine.store.DataStore$SerializableEntry"
}
],
"jni": [
@@ -3784,12 +3636,6 @@
{
"type": "java.lang.System",
"methods": [
{
"name": "getProperty",
"parameterTypes": [
"java.lang.String"
]
},
{
"name": "load",
"parameterTypes": [

File diff suppressed because one or more lines are too long