Fixed backing path creation for the default filesystem and added a GitHub action

This commit is contained in:
Natty 2022-04-06 11:01:41 +02:00 committed by Tefek
parent e57cd71b0c
commit e58e7f06ef
5 changed files with 98 additions and 24 deletions

39
.github/workflows/gradle-publish.yml vendored Executable file
View File

@ -0,0 +1,39 @@
name: Gradle Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'
server-id: github
settings-path: ${{ github.workspace }}
- name: Set up Gradle
uses: gradle/gradle-build-action@v2
- name: Execute Gradle build
run: |
chmod +x ./gradlew
./gradlew :engine-core:build --stacktrace --info -x test
- name: Publish to Vega
run: ./gradlew :engine-core:publish --stacktrace --info -x test
env:
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSWORD }}
ORG_GRADLE_PROJECT_vegaUsername: ${{ secrets.VEGA_USERNAME }}
ORG_GRADLE_PROJECT_vegaPassword: ${{ secrets.VEGA_PASSWORD }}

View File

@ -1,8 +1,17 @@
## Features targeted for 22.0.1.0-alpha.0 ## Features targeted for 22.0.1.0-alpha.0
* `[PlutoGUI]` Initial implementation of the new font renderer
* Full rewrite
* High quality font rendering
* Subpixel rendering support [?]
* Possibly a new system for bitmap fonts
* Improve upon the support of thread-local Pluto instances
* The long term goal is to allow an unlimited amount of Pluto applications at any given time
## Features targeted for 22.0.1.0-alpha.1
* The stage subsystem * The stage subsystem
* A "stage", in this context, is a set of assets bound together * A "stage", in this context, is a set of assets bound together
by programming logic, not necessarily a game level. by programming logic, not necessarily a game level.
Stage switching and asset management are handled by the engine. Stage switching and asset management are handled by the engine.
* Upon stage switch * Upon stage switch
1. Unload unused assets 1. Unload unused assets
2. Load new assets 2. Load new assets
@ -14,29 +23,19 @@
2. Deferred switch 2. Deferred switch
* The stage will continue running until all assets load * The stage will continue running until all assets load
* Assets will load synchronously, but at a slower pace * Assets will load synchronously, but at a slower pace
to avoid frame stutter to avoid frame stutter
3. Asynchronous switch 3. Asynchronous switch
* Assets will be loaded in asynchronously, where applicable * Assets will be loaded in asynchronously, where applicable
* Falls back to deferred switching for synchronous loading, * Falls back to deferred switching for synchronous loading,
such as OpenGL texture upload such as OpenGL texture upload
* Automated asset loading * Automated asset loading
* All asset management will eventually be handled by `PlutoCore` * All asset management will eventually be handled by `PlutoCore`
* This includes audio clips, textures, sprites * This includes audio clips, textures, sprites
* Add a common interface for all assets * Add a common interface for all assets
* Let the stage system handle audio playback * Let the stage system handle audio playback
* This API should be as neutral as possible and avoid steering towards * This API should be as neutral as possible and avoid steering towards
game-only use game-only use
* The stage manager should be relatively low-overhead and allow multiple * The stage manager should be relatively low-overhead and allow multiple
instances instances
* Allow stages to be inherited from, creating a stack-like structure * Allow stages to be inherited from, creating a stack-like structure
* `[PlutoAudio]` Integrate the Audio API with the Stage API * `[PlutoAudio]` Integrate the Audio API with the Stage API
* `[PlutoGUI]` Initial implementation of the new font renderer
* Full rewrite
* High quality font rendering
* Subpixel rendering support [?]
* Possibly a new system for bitmap fonts
* Improve upon the support of thread-local Pluto instances
* The long term goal is to allow an unlimited amount of Pluto applications at any given time
## Features targeted for 22.0.1.0-alpha.1
* TBD

View File

@ -1,9 +1,26 @@
import org.plutoengine.Versions import org.plutoengine.Versions
task("publish") {
dependsOn(":plutoengine:plutouss2:publish")
dependsOn(":plutoengine:plutolib:publish")
dependsOn(":plutoengine:plutocomponent:publish")
dependsOn(":plutoengine:plutoruntime:publish")
dependsOn(":plutoengine:plutodisplay:publish")
dependsOn(":plutoengine:plutotexture:publish")
dependsOn(":plutoengine:plutomesher:publish")
dependsOn(":plutoengine:plutoshader:publish")
dependsOn(":plutoengine:plutoframebuffer:publish")
dependsOn(":plutoengine:plutospritesheet:publish")
dependsOn(":plutoengine:plutogui:publish")
dependsOn(":plutoengine:plutoaudio:publish")
dependsOn(":plutoengine:plutocore:publish")
}
subprojects { subprojects {
apply(plugin = "java") apply(plugin = "java")
apply(plugin = "java-library") apply(plugin = "java-library")
apply(plugin = "maven-publish") apply(plugin = "maven-publish")
apply(plugin = "signing")
repositories { repositories {
mavenCentral() mavenCentral()
@ -28,5 +45,26 @@ subprojects {
from(components["java"]) from(components["java"])
} }
} }
repositories {
maven {
name = "Vega"
url = uri("https://vega.botdiril.com/")
credentials {
val vegaUsername: String? by project
val vegaPassword: String? by project
username = vegaUsername
password = vegaPassword
}
}
}
}
configure<SigningExtension> {
val signingKey: String? by project
val signingPassword: String? by project
useInMemoryPgpKeys(signingKey, signingPassword)
sign(the<PublishingExtension>().publications["maven"])
} }
} }

View File

@ -3,15 +3,14 @@ package org.plutoengine.audio.al;
import org.joml.Vector3f; import org.joml.Vector3f;
import org.lwjgl.openal.*; import org.lwjgl.openal.*;
import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.MemoryUtil;
import org.plutoengine.Pluto;
import org.plutoengine.logger.Logger;
import org.plutoengine.logger.SmartSeverity;
import javax.annotation.concurrent.ThreadSafe; import javax.annotation.concurrent.ThreadSafe;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import org.plutoengine.Pluto;
import org.plutoengine.logger.Logger;
import org.plutoengine.logger.SmartSeverity;
/** /**
* @author 493msi * @author 493msi
* *

View File

@ -20,10 +20,9 @@ import java.util.function.BiFunction;
@JsonDeserialize(converter = EnumBackingFileSystem.Deserializer.class) @JsonDeserialize(converter = EnumBackingFileSystem.Deserializer.class)
public enum EnumBackingFileSystem public enum EnumBackingFileSystem
{ {
FS_DIRECTORY("open", FS_DIRECTORY("open",
uri -> FileSystems.getDefault(), uri -> FileSystems.getDefault(),
(uri, fileSystem) -> fileSystem.getPath(uri.getPath()), (uri, fileSystem) -> fileSystem.provider().getPath(uri),
(fs, address, ext) -> { (fs, address, ext) -> {
var sep = fs.getSeparator(); var sep = fs.getSeparator();
var rootOffs = address.getRootOffset(); var rootOffs = address.getRootOffset();