Fast-forward master to working and delete working #1

Merged
AMNatty merged 29 commits from working into master 2022-04-06 09:04:32 +00:00
5 changed files with 98 additions and 24 deletions
Showing only changes of commit 63981a664d - Show all commits

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
* `[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
* A "stage", in this context, is a set of assets bound together
by programming logic, not necessarily a game level.
Stage switching and asset management are handled by the engine.
by programming logic, not necessarily a game level.
Stage switching and asset management are handled by the engine.
* Upon stage switch
1. Unload unused assets
2. Load new assets
@ -14,29 +23,19 @@
2. Deferred switch
* The stage will continue running until all assets load
* Assets will load synchronously, but at a slower pace
to avoid frame stutter
to avoid frame stutter
3. Asynchronous switch
* Assets will be loaded in asynchronously, where applicable
* Falls back to deferred switching for synchronous loading,
such as OpenGL texture upload
such as OpenGL texture upload
* Automated asset loading
* All asset management will eventually be handled by `PlutoCore`
* This includes audio clips, textures, sprites
* Add a common interface for all assets
* Let the stage system handle audio playback
* 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
instances
instances
* Allow stages to be inherited from, creating a stack-like structure
* `[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
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 {
apply(plugin = "java")
apply(plugin = "java-library")
apply(plugin = "maven-publish")
apply(plugin = "signing")
repositories {
mavenCentral()
@ -28,5 +45,26 @@ subprojects {
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.lwjgl.openal.*;
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 java.nio.ByteBuffer;
import java.nio.IntBuffer;
import org.plutoengine.Pluto;
import org.plutoengine.logger.Logger;
import org.plutoengine.logger.SmartSeverity;
/**
* @author 493msi
*

View File

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