mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2024-11-14 14:33:57 +01:00
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21
# Conflicts: # buildSrc/build.gradle.kts # buildSrc/src/main/kotlin/dev/engine_room/gradle/subproject/SubprojectPlugin.kt # forge/build.gradle.kts # gradle.properties # gradle/wrapper/gradle-wrapper.properties
This commit is contained in:
commit
42290b207f
1
.gitignore
vendored
1
.gitignore
vendored
@ -44,6 +44,7 @@ local.properties
|
||||
.buildpath
|
||||
|
||||
# Other
|
||||
.DS_Store
|
||||
mcmodsrepo
|
||||
src/*/generatedPackageInfos/
|
||||
*/src/*/generatedPackageInfos/
|
||||
|
@ -1,7 +1,8 @@
|
||||
import java.util.Properties
|
||||
|
||||
plugins {
|
||||
id("java-gradle-plugin")
|
||||
kotlin("jvm") version "1.9.23"
|
||||
`kotlin-dsl`
|
||||
idea
|
||||
}
|
||||
|
||||
repositories {
|
||||
@ -17,6 +18,11 @@ repositories {
|
||||
maven("https://maven.parchmentmc.org")
|
||||
}
|
||||
|
||||
idea.module {
|
||||
isDownloadJavadoc = true
|
||||
isDownloadSources = true
|
||||
}
|
||||
|
||||
gradlePlugin {
|
||||
plugins {
|
||||
create("platformPlugin") {
|
||||
@ -30,7 +36,12 @@ gradlePlugin {
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// FIXME: This should not hard-code the Loom version.
|
||||
implementation("dev.architectury.loom:dev.architectury.loom.gradle.plugin:1.7.+")
|
||||
val properties by lazy {
|
||||
Properties().apply {
|
||||
load(rootDir.parentFile.resolve("gradle.properties").inputStream())
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("dev.architectury.loom:dev.architectury.loom.gradle.plugin:${properties["arch_loom_version"]}")
|
||||
}
|
||||
|
@ -51,9 +51,6 @@ class SubprojectPlugin: Plugin<Project> {
|
||||
private fun setupLoom(project: Project) {
|
||||
val loom = project.the<LoomGradleExtensionAPI>()
|
||||
loom.silentMojangMappingsLicense()
|
||||
|
||||
//fixme is this still needed?
|
||||
// loom.mixin.defaultRefmapName = "flywheel.refmap.json"
|
||||
}
|
||||
|
||||
private fun setupJava(project: Project) {
|
||||
|
@ -2,12 +2,10 @@ package dev.engine_room.flywheel.api.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import dev.engine_room.flywheel.api.instance.InstanceType;
|
||||
|
||||
import dev.engine_room.flywheel.api.instance.InstancerProvider;
|
||||
|
||||
import org.joml.Vector4fc;
|
||||
|
||||
import dev.engine_room.flywheel.api.instance.InstanceType;
|
||||
import dev.engine_room.flywheel.api.instance.InstancerProvider;
|
||||
import dev.engine_room.flywheel.api.material.Material;
|
||||
|
||||
public interface Model {
|
||||
|
@ -6,25 +6,21 @@ import org.joml.Vector4fc;
|
||||
|
||||
import dev.engine_room.flywheel.api.vertex.MutableVertexList;
|
||||
import dev.engine_room.flywheel.api.vertex.VertexList;
|
||||
import dev.engine_room.flywheel.lib.memory.MemoryBlock;
|
||||
|
||||
public final class SimpleQuadMesh implements QuadMesh {
|
||||
private final VertexList vertexList;
|
||||
// Unused but we need to hold on to a reference so the cleaner doesn't nuke us.
|
||||
private final MemoryBlock data;
|
||||
private final Vector4f boundingSphere;
|
||||
@Nullable
|
||||
private final String descriptor;
|
||||
|
||||
public SimpleQuadMesh(VertexList vertexList, MemoryBlock data, @Nullable String descriptor) {
|
||||
public SimpleQuadMesh(VertexList vertexList, @Nullable String descriptor) {
|
||||
this.vertexList = vertexList;
|
||||
this.data = data;
|
||||
boundingSphere = ModelUtil.computeBoundingSphere(vertexList);
|
||||
this.descriptor = descriptor;
|
||||
}
|
||||
|
||||
public SimpleQuadMesh(VertexList vertexList, MemoryBlock data) {
|
||||
this(vertexList, data, null);
|
||||
public SimpleQuadMesh(VertexList vertexList) {
|
||||
this(vertexList, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,7 +41,8 @@ final class MeshHelper {
|
||||
|
||||
vertexView.ptr(dstPtr);
|
||||
vertexView.vertexCount(vertexCount);
|
||||
vertexView.nativeMemoryOwner(dst);
|
||||
|
||||
return new SimpleQuadMesh(vertexView, dst, meshDescriptor);
|
||||
return new SimpleQuadMesh(vertexView, meshDescriptor);
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public final class ModelPartConverter {
|
||||
|
||||
VertexView vertexView = new PosTexNormalVertexView();
|
||||
vertexView.load(data);
|
||||
return new SimpleQuadMesh(vertexView, data, "source=ModelPartConverter");
|
||||
return new SimpleQuadMesh(vertexView, "source=ModelPartConverter");
|
||||
}
|
||||
|
||||
public static Mesh convert(ModelLayerLocation layer, @Nullable TextureAtlasSprite sprite, String... childPath) {
|
||||
|
@ -1,8 +1,12 @@
|
||||
package dev.engine_room.flywheel.lib.vertex;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class AbstractVertexView implements VertexView {
|
||||
protected long ptr;
|
||||
protected int vertexCount;
|
||||
@Nullable
|
||||
private Object nativeMemoryOwner;
|
||||
|
||||
@Override
|
||||
public long ptr() {
|
||||
@ -23,4 +27,15 @@ public abstract class AbstractVertexView implements VertexView {
|
||||
public void vertexCount(int vertexCount) {
|
||||
this.vertexCount = vertexCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public final Object nativeMemoryOwner() {
|
||||
return nativeMemoryOwner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void nativeMemoryOwner(@Nullable Object owner) {
|
||||
nativeMemoryOwner = owner;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package dev.engine_room.flywheel.lib.vertex;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import dev.engine_room.flywheel.api.vertex.MutableVertexList;
|
||||
@ -14,6 +15,17 @@ public interface VertexView extends MutableVertexList {
|
||||
|
||||
long stride();
|
||||
|
||||
@Nullable
|
||||
Object nativeMemoryOwner();
|
||||
|
||||
/**
|
||||
* The memory referenced by this vertex view's pointer may be owned by another object, such that the memory is
|
||||
* automatically freed when the other object becomes phantom reachable or is garbage collected. Use this method to
|
||||
* ensure this vertex view retains a strong reference to the memory owner so this vertex view's pointer remains
|
||||
* valid even when no other references to the memory owner are retained.
|
||||
*/
|
||||
void nativeMemoryOwner(@Nullable Object owner);
|
||||
|
||||
default void load(MemoryBlock data) {
|
||||
long bytes = data.size();
|
||||
long stride = stride();
|
||||
@ -24,6 +36,7 @@ public interface VertexView extends MutableVertexList {
|
||||
|
||||
ptr(data.ptr());
|
||||
vertexCount(vertexCount);
|
||||
nativeMemoryOwner(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -60,6 +60,14 @@ defaultPackageInfos {
|
||||
sources(api, lib, backend, main)
|
||||
}
|
||||
|
||||
loom {
|
||||
mixin {
|
||||
useLegacyMixinAp = true
|
||||
add(main, "flywheel.refmap.json")
|
||||
add(backend, "backend-flywheel.refmap.json")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
modImplementation("net.fabricmc:fabric-loader:${property("fabric_loader_version")}")
|
||||
modApi("net.fabricmc.fabric-api:fabric-api:${property("fabric_api_version")}")
|
||||
|
@ -61,6 +61,18 @@ defaultPackageInfos {
|
||||
}
|
||||
|
||||
loom {
|
||||
mixin {
|
||||
useLegacyMixinAp = true
|
||||
add(main, "flywheel.refmap.json")
|
||||
add(backend, "backend-flywheel.refmap.json")
|
||||
}
|
||||
|
||||
forge {
|
||||
mixinConfig("flywheel.backend.mixins.json")
|
||||
mixinConfig("flywheel.impl.mixins.json")
|
||||
mixinConfig("flywheel.impl.sodium.mixins.json")
|
||||
}
|
||||
|
||||
runs {
|
||||
configureEach {
|
||||
property("forge.logging.markers", "")
|
||||
|
@ -19,8 +19,8 @@ neoforge_version_range = [21.0.167,)
|
||||
|
||||
# General build dependency versions
|
||||
java_version = 21
|
||||
# FIXME: This doesn't do anything.
|
||||
# arch_loom_version = 1.6-SNAPSHOT
|
||||
arch_loom_version=1.7.412
|
||||
cursegradle_version = 1.4.0
|
||||
parchment_version = 2024.07.07
|
||||
|
||||
# Minecraft build dependency versions
|
||||
|
@ -11,12 +11,6 @@ pluginManagement {
|
||||
maven("https://repo.spongepowered.org/repository/maven-public")
|
||||
maven("https://maven.parchmentmc.org")
|
||||
}
|
||||
|
||||
// FIXME: This doesn't do anything. The actual version is always the one defined in buildSrc/build.gradle.kts.
|
||||
// plugins {
|
||||
// val arch_loom_version: String by settings
|
||||
// id("dev.architectury.loom") version arch_loom_version
|
||||
// }
|
||||
}
|
||||
|
||||
rootProject.name = "Flywheel"
|
||||
|
Loading…
Reference in New Issue
Block a user