mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2025-01-28 05:44:59 +01:00
Fix GL error spam and do some cleanup
- Add flywheel$ prefix to mixin duck interfaces/accessors - Better chat messages for /flywheel backend command - Track VAO via vanilla
This commit is contained in:
parent
5f7b17a200
commit
3ce1345d6a
20 changed files with 96 additions and 54 deletions
|
@ -1,5 +1,6 @@
|
||||||
package com.jozufozu.flywheel.backend.gl;
|
package com.jozufozu.flywheel.backend.gl;
|
||||||
|
|
||||||
|
import com.jozufozu.flywheel.mixin.BufferUploaderAccessor;
|
||||||
import com.jozufozu.flywheel.util.AttribUtil;
|
import com.jozufozu.flywheel.util.AttribUtil;
|
||||||
import com.mojang.blaze3d.platform.GlStateManager;
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
|
|
||||||
|
@ -9,11 +10,14 @@ public class GlVertexArray extends GlObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void bind() {
|
public void bind() {
|
||||||
GlStateManager._glBindVertexArray(handle());
|
int handle = handle();
|
||||||
|
GlStateManager._glBindVertexArray(handle);
|
||||||
|
BufferUploaderAccessor.flywheel$setLastVAO(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void unbind() {
|
public static void unbind() {
|
||||||
GlStateManager._glBindVertexArray(0);
|
GlStateManager._glBindVertexArray(0);
|
||||||
|
BufferUploaderAccessor.flywheel$setLastVAO(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void deleteInternal(int handle) {
|
protected void deleteInternal(int handle) {
|
||||||
|
|
|
@ -31,12 +31,12 @@ public abstract class GlProgram extends GlObject {
|
||||||
public void bind() {
|
public void bind() {
|
||||||
int handle = handle();
|
int handle = handle();
|
||||||
ProgramManager.glUseProgram(handle);
|
ProgramManager.glUseProgram(handle);
|
||||||
ShaderInstanceAccessor.setLastProgramId(handle);
|
ShaderInstanceAccessor.flywheel$setLastProgramId(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unbind() {
|
public void unbind() {
|
||||||
ProgramManager.glUseProgram(0);
|
ProgramManager.glUseProgram(0);
|
||||||
ShaderInstanceAccessor.setLastProgramId(0);
|
ShaderInstanceAccessor.flywheel$setLastProgramId(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class SuperBufferSource {
|
||||||
public SuperBufferSource() {
|
public SuperBufferSource() {
|
||||||
scratch = new BufferBuilder(8);
|
scratch = new BufferBuilder(8);
|
||||||
|
|
||||||
((BufferBuilderHack) scratch).freeBuffer();
|
((BufferBuilderHack) scratch).flywheel$freeBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public DirectVertexConsumer getBuffer(RenderType renderType, int vertexCount) {
|
public DirectVertexConsumer getBuffer(RenderType renderType, int vertexCount) {
|
||||||
|
@ -40,7 +40,7 @@ public class SuperBufferSource {
|
||||||
if (builder.expectedVertices > 0) {
|
if (builder.expectedVertices > 0) {
|
||||||
RenderType type = entry.getKey();
|
RenderType type = entry.getKey();
|
||||||
|
|
||||||
hack.hackBegin(builder.backingBuffer, type.format(), builder.expectedVertices);
|
hack.flywheel$hackBegin(builder.backingBuffer, type.format(), builder.expectedVertices);
|
||||||
|
|
||||||
type.end(scratch, 0, 0, 0);
|
type.end(scratch, 0, 0, 0);
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import com.mojang.blaze3d.vertex.VertexFormat;
|
||||||
*/
|
*/
|
||||||
public interface BufferBuilderHack {
|
public interface BufferBuilderHack {
|
||||||
|
|
||||||
void freeBuffer();
|
void flywheel$freeBuffer();
|
||||||
|
|
||||||
void hackBegin(ByteBuffer buffer, VertexFormat format, int vertexCount);
|
void flywheel$hackBegin(ByteBuffer buffer, VertexFormat format, int vertexCount);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.Backend;
|
import com.jozufozu.flywheel.backend.Backend;
|
||||||
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
|
@ -13,12 +15,14 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.network.chat.TextComponent;
|
import net.minecraft.network.chat.TextComponent;
|
||||||
|
import net.minecraftforge.fml.ModList;
|
||||||
|
|
||||||
public enum FlwEngine {
|
public enum FlwEngine {
|
||||||
OFF("off", "Off", new TextComponent("Disabled Flywheel").withStyle(ChatFormatting.RED)),
|
OFF("off", "Off"),
|
||||||
BATCHING("batching", "Parallel Batching", new TextComponent("Using Batching Engine").withStyle(ChatFormatting.GREEN)),
|
BATCHING("batching", "Parallel Batching"),
|
||||||
INSTANCING("instancing", "GL33 Instanced Arrays", new TextComponent("Using Instancing Engine").withStyle(ChatFormatting.GREEN)),
|
INSTANCING("instancing", "GL33 Instanced Arrays"),
|
||||||
;
|
;
|
||||||
|
|
||||||
private static final Map<String, FlwEngine> lookup;
|
private static final Map<String, FlwEngine> lookup;
|
||||||
|
@ -30,14 +34,12 @@ public enum FlwEngine {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Component message;
|
|
||||||
private final String shortName;
|
private final String shortName;
|
||||||
private final String properName;
|
private final String properName;
|
||||||
|
|
||||||
FlwEngine(String shortName, String properName, Component message) {
|
FlwEngine(String shortName, String properName) {
|
||||||
this.shortName = shortName;
|
this.shortName = shortName;
|
||||||
this.properName = properName;
|
this.properName = properName;
|
||||||
this.message = message;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getProperName() {
|
public String getProperName() {
|
||||||
|
@ -55,13 +57,33 @@ public enum FlwEngine {
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
FlwConfig.get().client.engine.set(type);
|
FlwConfig.get().client.engine.set(type);
|
||||||
|
|
||||||
player.displayClientMessage(type.message, false);
|
Component message = getMessage(type);
|
||||||
|
|
||||||
|
player.displayClientMessage(message, false);
|
||||||
Backend.reloadWorldRenderers();
|
Backend.reloadWorldRenderers();
|
||||||
} else {
|
} else {
|
||||||
player.displayClientMessage(FlwConfig.get().getEngine().message, false);
|
player.displayClientMessage(getMessage(FlwConfig.get().getEngine()), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Component getMessage(@NotNull FlwEngine type) {
|
||||||
|
return switch (type) {
|
||||||
|
case OFF -> new TextComponent("Disabled Flywheel").withStyle(ChatFormatting.RED);
|
||||||
|
case INSTANCING -> new TextComponent("Using Instancing Engine").withStyle(ChatFormatting.GREEN);
|
||||||
|
case BATCHING -> {
|
||||||
|
MutableComponent msg = new TextComponent("Using Batching Engine").withStyle(ChatFormatting.GREEN);
|
||||||
|
|
||||||
|
if (ModList.get()
|
||||||
|
.isLoaded("create")) {
|
||||||
|
// FIXME: batching engine contraption lighting issues
|
||||||
|
msg.append(new TextComponent("\nWARNING: May cause issues with Create Contraptions").withStyle(ChatFormatting.RED));
|
||||||
|
}
|
||||||
|
|
||||||
|
yield msg;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static FlwEngine decode(FriendlyByteBuf buffer) {
|
public static FlwEngine decode(FriendlyByteBuf buffer) {
|
||||||
byte b = buffer.readByte();
|
byte b = buffer.readByte();
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class AtlasInfo {
|
||||||
* FOR USE IN MIXIN
|
* FOR USE IN MIXIN
|
||||||
*/
|
*/
|
||||||
public static void _setAtlasData(ResourceLocation atlas, SheetDataAccessor accessor) {
|
public static void _setAtlasData(ResourceLocation atlas, SheetDataAccessor accessor) {
|
||||||
sheetData.put(atlas, new SheetSize(accessor.getWidth(), accessor.getHeight()));
|
sheetData.put(atlas, new SheetSize(accessor.flywheel$getWidth(), accessor.flywheel$getHeight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public record SheetSize(int width, int height) {
|
public record SheetSize(int width, int height) {
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class CrumblingRenderer {
|
||||||
|
|
||||||
Int2ObjectMap<List<BlockEntity>> breakingEntities = new Int2ObjectArrayMap<>();
|
Int2ObjectMap<List<BlockEntity>> breakingEntities = new Int2ObjectArrayMap<>();
|
||||||
|
|
||||||
for (Long2ObjectMap.Entry<SortedSet<BlockDestructionProgress>> entry : ((LevelRendererAccessor) Minecraft.getInstance().levelRenderer).getDestructionProgress()
|
for (Long2ObjectMap.Entry<SortedSet<BlockDestructionProgress>> entry : ((LevelRendererAccessor) Minecraft.getInstance().levelRenderer).flywheel$getDestructionProgress()
|
||||||
.long2ObjectEntrySet()) {
|
.long2ObjectEntrySet()) {
|
||||||
BlockPos breakingPos = BlockPos.of(entry.getLongKey());
|
BlockPos breakingPos = BlockPos.of(entry.getLongKey());
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.jozufozu.flywheel.core.materials.model;
|
||||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||||
import com.jozufozu.flywheel.api.struct.StructType;
|
import com.jozufozu.flywheel.api.struct.StructType;
|
||||||
import com.jozufozu.flywheel.core.materials.BasicWriterUnsafe;
|
import com.jozufozu.flywheel.core.materials.BasicWriterUnsafe;
|
||||||
import com.jozufozu.flywheel.util.WriteUnsafe;
|
import com.jozufozu.flywheel.util.MatrixWrite;
|
||||||
|
|
||||||
public class ModelWriterUnsafe extends BasicWriterUnsafe<ModelData> {
|
public class ModelWriterUnsafe extends BasicWriterUnsafe<ModelData> {
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ public class ModelWriterUnsafe extends BasicWriterUnsafe<ModelData> {
|
||||||
super.writeInternal(d);
|
super.writeInternal(d);
|
||||||
long ptr = writePointer + 6;
|
long ptr = writePointer + 6;
|
||||||
|
|
||||||
((WriteUnsafe) (Object) d.model).writeUnsafe(ptr);
|
((MatrixWrite) (Object) d.model).flywheel$writeUnsafe(ptr);
|
||||||
((WriteUnsafe) (Object) d.normal).writeUnsafe(ptr + 4 * 16);
|
((MatrixWrite) (Object) d.normal).flywheel$writeUnsafe(ptr + 4 * 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,6 @@ public class RenderLayerEvent extends Event {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "RenderLayerEvent{" + "world=" + world + ", type=" + type + ", stack=" + stack + ", viewProjection=" + viewProjection + ", buffers=" + buffers + ", camX=" + camX + ", camY=" + camY + ", camZ=" + camZ + ", layer=" + layer + '}';
|
return "RenderLayerEvent[" + layer + "][" + "world=" + world + ", type=" + type + ", stack=" + stack + ", viewProjection=" + viewProjection + ", buffers=" + buffers + ", camX=" + camX + ", camY=" + camY + ", camZ=" + camZ + ']';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public abstract class BufferBuilderMixin implements BufferBuilderHack {
|
||||||
private int vertices;
|
private int vertices;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void freeBuffer() {
|
public void flywheel$freeBuffer() {
|
||||||
if (this.buffer != null) {
|
if (this.buffer != null) {
|
||||||
MemoryUtil.memFree(this.buffer);
|
MemoryUtil.memFree(this.buffer);
|
||||||
this.buffer = null;
|
this.buffer = null;
|
||||||
|
@ -52,7 +52,7 @@ public abstract class BufferBuilderMixin implements BufferBuilderHack {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void hackBegin(@Nonnull ByteBuffer buffer, @Nonnull VertexFormat format, int vertexCount) {
|
public void flywheel$hackBegin(@Nonnull ByteBuffer buffer, @Nonnull VertexFormat format, int vertexCount) {
|
||||||
this.building = true;
|
this.building = true;
|
||||||
this.mode = VertexFormat.Mode.QUADS;
|
this.mode = VertexFormat.Mode.QUADS;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.jozufozu.flywheel.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.vertex.BufferUploader;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.ShaderInstance;
|
||||||
|
|
||||||
|
@Mixin(BufferUploader.class)
|
||||||
|
public interface BufferUploaderAccessor {
|
||||||
|
@Accessor("lastVertexArrayObject")
|
||||||
|
static void flywheel$setLastVAO(int id) {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,6 +11,6 @@ import net.minecraft.server.level.BlockDestructionProgress;
|
||||||
|
|
||||||
@Mixin(LevelRenderer.class)
|
@Mixin(LevelRenderer.class)
|
||||||
public interface LevelRendererAccessor {
|
public interface LevelRendererAccessor {
|
||||||
@Accessor
|
@Accessor("destructionProgress")
|
||||||
Long2ObjectMap<SortedSet<BlockDestructionProgress>> getDestructionProgress();
|
Long2ObjectMap<SortedSet<BlockDestructionProgress>> flywheel$getDestructionProgress();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import net.minecraft.client.renderer.ShaderInstance;
|
||||||
@Mixin(ShaderInstance.class)
|
@Mixin(ShaderInstance.class)
|
||||||
public interface ShaderInstanceAccessor {
|
public interface ShaderInstanceAccessor {
|
||||||
@Accessor("lastProgramId")
|
@Accessor("lastProgramId")
|
||||||
static void setLastProgramId(int id) {
|
static void flywheel$setLastProgramId(int id) {
|
||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,9 @@ import net.minecraft.client.renderer.texture.TextureAtlas;
|
||||||
public interface SheetDataAccessor {
|
public interface SheetDataAccessor {
|
||||||
|
|
||||||
@Accessor("width")
|
@Accessor("width")
|
||||||
int getWidth();
|
int flywheel$getWidth();
|
||||||
|
|
||||||
@Accessor("height")
|
@Accessor("height")
|
||||||
int getHeight();
|
int flywheel$getHeight();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||||
import com.jozufozu.flywheel.util.WriteSafe;
|
import com.jozufozu.flywheel.util.MatrixWrite;
|
||||||
import com.jozufozu.flywheel.util.WriteUnsafe;
|
|
||||||
import com.mojang.math.Matrix3f;
|
import com.mojang.math.Matrix3f;
|
||||||
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
@ -14,7 +13,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
@Mixin(Matrix3f.class)
|
@Mixin(Matrix3f.class)
|
||||||
public abstract class Matrix3fMixin implements WriteUnsafe, WriteSafe {
|
public abstract class Matrix3fMixin implements MatrixWrite {
|
||||||
|
|
||||||
@Shadow protected float m00;
|
@Shadow protected float m00;
|
||||||
@Shadow protected float m01;
|
@Shadow protected float m01;
|
||||||
|
@ -27,7 +26,7 @@ public abstract class Matrix3fMixin implements WriteUnsafe, WriteSafe {
|
||||||
@Shadow protected float m22;
|
@Shadow protected float m22;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeUnsafe(long ptr) {
|
public void flywheel$writeUnsafe(long ptr) {
|
||||||
MemoryUtil.memPutFloat(ptr, m00);
|
MemoryUtil.memPutFloat(ptr, m00);
|
||||||
MemoryUtil.memPutFloat(ptr + 4, m10);
|
MemoryUtil.memPutFloat(ptr + 4, m10);
|
||||||
MemoryUtil.memPutFloat(ptr + 8, m20);
|
MemoryUtil.memPutFloat(ptr + 8, m20);
|
||||||
|
@ -40,7 +39,7 @@ public abstract class Matrix3fMixin implements WriteUnsafe, WriteSafe {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(VecBuffer buffer) {
|
public void flywheel$write(VecBuffer buffer) {
|
||||||
buffer.putFloat(m00);
|
buffer.putFloat(m00);
|
||||||
buffer.putFloat(m10);
|
buffer.putFloat(m10);
|
||||||
buffer.putFloat(m20);
|
buffer.putFloat(m20);
|
||||||
|
|
|
@ -5,8 +5,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||||
import com.jozufozu.flywheel.util.WriteSafe;
|
import com.jozufozu.flywheel.util.MatrixWrite;
|
||||||
import com.jozufozu.flywheel.util.WriteUnsafe;
|
|
||||||
import com.mojang.math.Matrix4f;
|
import com.mojang.math.Matrix4f;
|
||||||
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
@ -14,7 +13,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
@Mixin(Matrix4f.class)
|
@Mixin(Matrix4f.class)
|
||||||
public abstract class Matrix4fMixin implements WriteUnsafe, WriteSafe {
|
public abstract class Matrix4fMixin implements MatrixWrite {
|
||||||
|
|
||||||
@Shadow protected float m00;
|
@Shadow protected float m00;
|
||||||
@Shadow protected float m01;
|
@Shadow protected float m01;
|
||||||
|
@ -34,7 +33,7 @@ public abstract class Matrix4fMixin implements WriteUnsafe, WriteSafe {
|
||||||
@Shadow protected float m33;
|
@Shadow protected float m33;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeUnsafe(long ptr) {
|
public void flywheel$writeUnsafe(long ptr) {
|
||||||
MemoryUtil.memPutFloat(ptr, m00);
|
MemoryUtil.memPutFloat(ptr, m00);
|
||||||
MemoryUtil.memPutFloat(ptr + 4, m10);
|
MemoryUtil.memPutFloat(ptr + 4, m10);
|
||||||
MemoryUtil.memPutFloat(ptr + 8, m20);
|
MemoryUtil.memPutFloat(ptr + 8, m20);
|
||||||
|
@ -54,7 +53,7 @@ public abstract class Matrix4fMixin implements WriteUnsafe, WriteSafe {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(VecBuffer buf) {
|
public void flywheel$write(VecBuffer buf) {
|
||||||
buf.putFloat(m00);
|
buf.putFloat(m00);
|
||||||
buf.putFloat(m10);
|
buf.putFloat(m10);
|
||||||
buf.putFloat(m20);
|
buf.putFloat(m20);
|
||||||
|
|
17
src/main/java/com/jozufozu/flywheel/util/MatrixWrite.java
Normal file
17
src/main/java/com/jozufozu/flywheel/util/MatrixWrite.java
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package com.jozufozu.flywheel.util;
|
||||||
|
|
||||||
|
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.jozufozu.flywheel.mixin.matrix.Matrix3fMixin
|
||||||
|
* @see com.jozufozu.flywheel.mixin.matrix.Matrix4fMixin
|
||||||
|
*/
|
||||||
|
public interface MatrixWrite {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write the contents of this object into sequential memory starting at the given address.
|
||||||
|
*/
|
||||||
|
void flywheel$writeUnsafe(long ptr);
|
||||||
|
|
||||||
|
void flywheel$write(VecBuffer buf);
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
package com.jozufozu.flywheel.util;
|
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
|
||||||
|
|
||||||
public interface WriteSafe {
|
|
||||||
void write(VecBuffer buf);
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
package com.jozufozu.flywheel.util;
|
|
||||||
|
|
||||||
public interface WriteUnsafe {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Write the contents of this object into sequential memory starting at the given address.
|
|
||||||
*/
|
|
||||||
void writeUnsafe(long ptr);
|
|
||||||
}
|
|
|
@ -6,6 +6,7 @@
|
||||||
"refmap": "flywheel.refmap.json",
|
"refmap": "flywheel.refmap.json",
|
||||||
"client": [
|
"client": [
|
||||||
"BufferBuilderMixin",
|
"BufferBuilderMixin",
|
||||||
|
"BufferUploaderAccessor",
|
||||||
"CancelEntityRenderMixin",
|
"CancelEntityRenderMixin",
|
||||||
"ChunkRebuildHooksMixin",
|
"ChunkRebuildHooksMixin",
|
||||||
"FixFabulousDepthMixin",
|
"FixFabulousDepthMixin",
|
||||||
|
|
Loading…
Reference in a new issue