mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2024-12-27 23:47:09 +01:00
Buffer built
- Remove BufferBuilderExtension and mixin. - Missed these in earlier commits.
This commit is contained in:
parent
02321c52ef
commit
588bb4dda3
3 changed files with 0 additions and 94 deletions
|
@ -1,27 +0,0 @@
|
||||||
package com.jozufozu.flywheel.extension;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder;
|
|
||||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Duck interface used on {@link BufferBuilder} to provide lower level access to the backing memory.
|
|
||||||
*
|
|
||||||
* @see com.jozufozu.flywheel.mixin.BufferBuilderMixin
|
|
||||||
*/
|
|
||||||
public interface BufferBuilderExtension {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Frees the internal ByteBuffer, if it exists.
|
|
||||||
*/
|
|
||||||
void flywheel$freeBuffer();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepares the BufferBuilder for drawing the contents of the given buffer.
|
|
||||||
* @param buffer The buffer to draw.
|
|
||||||
* @param format The format of the buffer.
|
|
||||||
* @param vertexCount The number of vertices in the buffer.
|
|
||||||
*/
|
|
||||||
void flywheel$injectForRender(ByteBuffer buffer, VertexFormat format, int vertexCount);
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
package com.jozufozu.flywheel.mixin;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
import org.lwjgl.system.MemoryUtil;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
|
||||||
|
|
||||||
import com.jozufozu.flywheel.extension.BufferBuilderExtension;
|
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder;
|
|
||||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
|
||||||
import com.mojang.blaze3d.vertex.VertexFormatElement;
|
|
||||||
|
|
||||||
@Mixin(BufferBuilder.class)
|
|
||||||
abstract class BufferBuilderMixin implements BufferBuilderExtension {
|
|
||||||
@Shadow
|
|
||||||
private ByteBuffer buffer;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private int vertices;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
@Nullable
|
|
||||||
private VertexFormatElement currentElement;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private int elementIndex;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private VertexFormat format;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private VertexFormat.Mode mode;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private boolean building;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
private int nextElementByte;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void flywheel$freeBuffer() {
|
|
||||||
if (buffer != null) {
|
|
||||||
// The buffer is created using MemoryTracker, which uses a non-default allocator.
|
|
||||||
// The same allocator must be used here to free the buffer.
|
|
||||||
MemoryUtil.getAllocator(false).free(MemoryUtil.memAddress0(buffer));
|
|
||||||
buffer = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void flywheel$injectForRender(@NotNull ByteBuffer buffer, @NotNull VertexFormat format, int vertexCount) {
|
|
||||||
building = true;
|
|
||||||
mode = VertexFormat.Mode.QUADS;
|
|
||||||
|
|
||||||
this.buffer = buffer;
|
|
||||||
this.format = format;
|
|
||||||
vertices = vertexCount;
|
|
||||||
|
|
||||||
currentElement = format.getElements().get(0);
|
|
||||||
elementIndex = 0;
|
|
||||||
nextElementByte = vertexCount * format.getVertexSize();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,7 +6,6 @@
|
||||||
"refmap": "flywheel.refmap.json",
|
"refmap": "flywheel.refmap.json",
|
||||||
"client": [
|
"client": [
|
||||||
"BlockEntityTypeMixin",
|
"BlockEntityTypeMixin",
|
||||||
"BufferBuilderMixin",
|
|
||||||
"ClientLevelMixin",
|
"ClientLevelMixin",
|
||||||
"EntityTypeMixin",
|
"EntityTypeMixin",
|
||||||
"FogUpdateMixin",
|
"FogUpdateMixin",
|
||||||
|
|
Loading…
Reference in a new issue