Package net.minecraft.client.render
Class BufferBuilder
java.lang.Object
net.minecraft.client.render.FixedColorVertexConsumer
net.minecraft.client.render.BufferBuilder
- All Implemented Interfaces:
BufferVertexConsumer,VertexConsumer
@Environment(CLIENT)
public class BufferBuilder
extends FixedColorVertexConsumer
implements BufferVertexConsumer
Builds a buffer of primitives and optionally sorts them by the distance
from the camera.
This builder can sort quad primitives. It sorts them by the distance between the camera position and the center of the quad. Sorting is required when drawing translucent objects because they have to be drawn in back-to-front order. See Transparency Sorting - OpenGL Wiki.
For LINES and LINE_STRIP draw modes, this builder
duplicates every vertex in a line to produce a quad with zero area. See
GameRenderer.getRenderTypeLinesProgram().
- Mappings:
Namespace Name official enfintermediary net/minecraft/class_287named net/minecraft/client/render/BufferBuilder
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassAn output ofBufferBuilder.static final recordstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate ByteBufferprivate booleanprivate intprivate booleanWhether this builder is aware of the vertex format and can skip checks for the current target element while building a vertex invertex(float, float, float, float, float, float, float, float, float, int, int, float, float, float).private @Nullable VertexFormatElementprivate intprivate VertexFormat.DrawModeprivate intprivate static final intprivate booleanprivate VertexFormatprivate booleanprivate booleanprivate static final Loggerprivate @Nullable VertexSorterprivate intFields inherited from class net.minecraft.client.render.FixedColorVertexConsumer
colorFixed, fixedAlpha, fixedBlue, fixedGreen, fixedRed -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbegin(VertexFormat.DrawMode drawMode, VertexFormat format) voidprivate BufferBuilder.BuiltBufferbuild()private Vector3f[]voidclear()color(int red, int green, int blue, int alpha) Specifies the color element of the current vertex.end()Builds a buffer from the current batch and resets the building state.Builds a buffer if there are vertices in the current batch and resets the building state.private voidprivate IntConsumergetIndexConsumer(int offset, VertexFormat.IndexType indexType) private voidgrow()private voidgrow(int size) booleanbooleanvoidprivate voidvoidnext()Starts consuming the next vertex.voidvoidputByte(int index, byte value) voidputFloat(int index, float value) voidputShort(int index, short value) (package private) voidvoidreset()private voidprivate voidsetFormat(VertexFormat format) voidsetSorter(VertexSorter sorter) (package private) ByteBufferslice(int start, int end) voidvertex(float x, float y, float z, float red, float green, float blue, float alpha, float u, float v, int overlay, int light, float normalX, float normalY, float normalZ) private voidwriteSortedIndices(VertexFormat.IndexType indexType) Methods inherited from class net.minecraft.client.render.FixedColorVertexConsumer
fixedColor, unfixColorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.client.render.BufferVertexConsumer
light, normal, overlay, texture, uv, vertexMethods inherited from interface net.minecraft.client.render.VertexConsumer
color, color, fixedColor, light, normal, overlay, quad, quad, unfixColor, vertex
-
Field Details
-
field_46839
private static final int field_46839- See Also:
- Mappings:
Namespace Name Mixin selector official fLenf;f:Iintermediary field_46839Lnet/minecraft/class_287;field_46839:Inamed field_46839Lnet/minecraft/client/render/BufferBuilder;field_46839:I
-
LOGGER
- Mappings:
Namespace Name Mixin selector official gLenf;g:Lorg/slf4j/Logger;intermediary field_1557Lnet/minecraft/class_287;field_1557:Lorg/slf4j/Logger;named LOGGERLnet/minecraft/client/render/BufferBuilder;LOGGER:Lorg/slf4j/Logger;
-
buffer
- Mappings:
Namespace Name Mixin selector official hLenf;h:Ljava/nio/ByteBuffer;intermediary field_1555Lnet/minecraft/class_287;field_1555:Ljava/nio/ByteBuffer;named bufferLnet/minecraft/client/render/BufferBuilder;buffer:Ljava/nio/ByteBuffer;
-
field_46840
private boolean field_46840- Mappings:
Namespace Name Mixin selector official iLenf;i:Zintermediary field_46840Lnet/minecraft/class_287;field_46840:Znamed field_46840Lnet/minecraft/client/render/BufferBuilder;field_46840:Z
-
builtBufferCount
private int builtBufferCount- Mappings:
Namespace Name Mixin selector official jLenf;j:Iintermediary field_39061Lnet/minecraft/class_287;field_39061:Inamed builtBufferCountLnet/minecraft/client/render/BufferBuilder;builtBufferCount:I
-
batchOffset
private int batchOffset- Mappings:
Namespace Name Mixin selector official kLenf;k:Iintermediary field_39062Lnet/minecraft/class_287;field_39062:Inamed batchOffsetLnet/minecraft/client/render/BufferBuilder;batchOffset:I
-
elementOffset
private int elementOffset- Mappings:
Namespace Name Mixin selector official lLenf;l:Iintermediary field_20884Lnet/minecraft/class_287;field_20884:Inamed elementOffsetLnet/minecraft/client/render/BufferBuilder;elementOffset:I
-
vertexCount
private int vertexCount- Mappings:
Namespace Name Mixin selector official mLenf;m:Iintermediary field_1554Lnet/minecraft/class_287;field_1554:Inamed vertexCountLnet/minecraft/client/render/BufferBuilder;vertexCount:I
-
currentElement
- Mappings:
Namespace Name Mixin selector official nLenf;n:Lenq;intermediary field_1558Lnet/minecraft/class_287;field_1558:Lnet/minecraft/class_296;named currentElementLnet/minecraft/client/render/BufferBuilder;currentElement:Lnet/minecraft/client/render/VertexFormatElement;
-
currentElementId
private int currentElementId- Mappings:
Namespace Name Mixin selector official oLenf;o:Iintermediary field_1553Lnet/minecraft/class_287;field_1553:Inamed currentElementIdLnet/minecraft/client/render/BufferBuilder;currentElementId:I
-
format
- Mappings:
Namespace Name Mixin selector official pLenf;p:Lenp;intermediary field_1565Lnet/minecraft/class_287;field_1565:Lnet/minecraft/class_293;named formatLnet/minecraft/client/render/BufferBuilder;format:Lnet/minecraft/client/render/VertexFormat;
-
drawMode
- Mappings:
Namespace Name Mixin selector official qLenf;q:Lenp$b;intermediary field_1567Lnet/minecraft/class_287;field_1567:Lnet/minecraft/class_293$class_5596;named drawModeLnet/minecraft/client/render/BufferBuilder;drawMode:Lnet/minecraft/client/render/VertexFormat$DrawMode;
-
canSkipElementChecks
private boolean canSkipElementChecksWhether this builder is aware of the vertex format and can skip checks for the current target element while building a vertex invertex(float, float, float, float, float, float, float, float, float, int, int, float, float, float).- Mappings:
Namespace Name Mixin selector official rLenf;r:Zintermediary field_21594Lnet/minecraft/class_287;field_21594:Znamed canSkipElementChecksLnet/minecraft/client/render/BufferBuilder;canSkipElementChecks:Z
-
hasOverlay
private boolean hasOverlay- Mappings:
Namespace Name Mixin selector official sLenf;s:Zintermediary field_21595Lnet/minecraft/class_287;field_21595:Znamed hasOverlayLnet/minecraft/client/render/BufferBuilder;hasOverlay:Z
-
building
private boolean building- Mappings:
Namespace Name Mixin selector official tLenf;t:Zintermediary field_1556Lnet/minecraft/class_287;field_1556:Znamed buildingLnet/minecraft/client/render/BufferBuilder;building:Z
-
sortingPrimitiveCenters
- Mappings:
Namespace Name Mixin selector official uLenf;u:[Lorg/joml/Vector3f;intermediary field_27348Lnet/minecraft/class_287;field_27348:[Lorg/joml/Vector3f;named sortingPrimitiveCentersLnet/minecraft/client/render/BufferBuilder;sortingPrimitiveCenters:[Lorg/joml/Vector3f;
-
sorter
- Mappings:
Namespace Name Mixin selector official vLenf;v:Lens;intermediary field_43358Lnet/minecraft/class_287;field_43358:Lnet/minecraft/class_8251;named sorterLnet/minecraft/client/render/BufferBuilder;sorter:Lcom/mojang/blaze3d/systems/VertexSorter;
-
hasNoVertexBuffer
private boolean hasNoVertexBuffer- Mappings:
Namespace Name Mixin selector official wLenf;w:Zintermediary field_27352Lnet/minecraft/class_287;field_27352:Znamed hasNoVertexBufferLnet/minecraft/client/render/BufferBuilder;hasNoVertexBuffer:Z
-
-
Constructor Details
-
BufferBuilder
public BufferBuilder(int initialCapacity) - Mappings:
Namespace Name Mixin selector official <init>Lenf;<init>(I)Vintermediary <init>Lnet/minecraft/class_287;<init>(I)Vnamed <init>Lnet/minecraft/client/render/BufferBuilder;<init>(I)V
-
-
Method Details
-
grow
private void grow()- Mappings:
Namespace Name Mixin selector official mLenf;m()Vintermediary method_22892Lnet/minecraft/class_287;method_22892()Vnamed growLnet/minecraft/client/render/BufferBuilder;grow()V
-
grow
private void grow(int size) - Mappings:
Namespace Name Mixin selector official dLenf;d(I)Vintermediary method_1335Lnet/minecraft/class_287;method_1335(I)Vnamed growLnet/minecraft/client/render/BufferBuilder;grow(I)V
-
setSorter
- Mappings:
Namespace Name Mixin selector official aLenf;a(Lens;)Vintermediary method_49904Lnet/minecraft/class_287;method_49904(Lnet/minecraft/class_8251;)Vnamed setSorterLnet/minecraft/client/render/BufferBuilder;setSorter(Lcom/mojang/blaze3d/systems/VertexSorter;)V
-
getSortingData
- Mappings:
Namespace Name Mixin selector official aLenf;a()Lenf$c;intermediary method_1334Lnet/minecraft/class_287;method_1334()Lnet/minecraft/class_287$class_5594;named getSortingDataLnet/minecraft/client/render/BufferBuilder;getSortingData()Lnet/minecraft/client/render/BufferBuilder$TransparentSortingData;
-
method_54559
private void method_54559()- Mappings:
Namespace Name Mixin selector official nLenf;n()Vintermediary method_54559Lnet/minecraft/class_287;method_54559()Vnamed method_54559Lnet/minecraft/client/render/BufferBuilder;method_54559()V
-
beginSortedIndexBuffer
- Mappings:
Namespace Name Mixin selector official aLenf;a(Lenf$c;)Vintermediary method_1324Lnet/minecraft/class_287;method_1324(Lnet/minecraft/class_287$class_5594;)Vnamed beginSortedIndexBufferLnet/minecraft/client/render/BufferBuilder;beginSortedIndexBuffer(Lnet/minecraft/client/render/BufferBuilder$TransparentSortingData;)V
-
begin
- Mappings:
Namespace Name Mixin selector official aLenf;a(Lenp$b;Lenp;)Vintermediary method_1328Lnet/minecraft/class_287;method_1328(Lnet/minecraft/class_293$class_5596;Lnet/minecraft/class_293;)Vnamed beginLnet/minecraft/client/render/BufferBuilder;begin(Lnet/minecraft/client/render/VertexFormat$DrawMode;Lnet/minecraft/client/render/VertexFormat;)V
-
setFormat
- Mappings:
Namespace Name Mixin selector official aLenf;a(Lenp;)Vintermediary method_23918Lnet/minecraft/class_287;method_23918(Lnet/minecraft/class_293;)Vnamed setFormatLnet/minecraft/client/render/BufferBuilder;setFormat(Lnet/minecraft/client/render/VertexFormat;)V
-
getIndexConsumer
- Mappings:
Namespace Name Mixin selector official aLenf;a(ILenp$a;)Lit/unimi/dsi/fastutil/ints/IntConsumer;intermediary method_31949Lnet/minecraft/class_287;method_31949(ILnet/minecraft/class_293$class_5595;)Lit/unimi/dsi/fastutil/ints/IntConsumer;named getIndexConsumerLnet/minecraft/client/render/BufferBuilder;getIndexConsumer(ILnet/minecraft/client/render/VertexFormat$IndexType;)Lit/unimi/dsi/fastutil/ints/IntConsumer;
-
buildPrimitiveCenters
- Mappings:
Namespace Name Mixin selector official oLenf;o()[Lorg/joml/Vector3f;intermediary method_31954Lnet/minecraft/class_287;method_31954()[Lorg/joml/Vector3f;named buildPrimitiveCentersLnet/minecraft/client/render/BufferBuilder;buildPrimitiveCenters()[Lorg/joml/Vector3f;
-
writeSortedIndices
- Mappings:
Namespace Name Mixin selector official aLenf;a(Lenp$a;)Vintermediary method_31950Lnet/minecraft/class_287;method_31950(Lnet/minecraft/class_293$class_5595;)Vnamed writeSortedIndicesLnet/minecraft/client/render/BufferBuilder;writeSortedIndices(Lnet/minecraft/client/render/VertexFormat$IndexType;)V
-
isBatchEmpty
public boolean isBatchEmpty()- Mappings:
Namespace Name Mixin selector official bLenf;b()Zintermediary method_43574Lnet/minecraft/class_287;method_43574()Znamed isBatchEmptyLnet/minecraft/client/render/BufferBuilder;isBatchEmpty()Z
-
endNullable
Builds a buffer if there are vertices in the current batch and resets the building state.- Returns:
- the built buffer if there are vertices, otherwise
null - Throws:
IllegalStateException- if this builder has not begun building- See Also:
- Mappings:
Namespace Name Mixin selector official cLenf;c()Lenf$b;intermediary method_43575Lnet/minecraft/class_287;method_43575()Lnet/minecraft/class_287$class_7433;named endNullableLnet/minecraft/client/render/BufferBuilder;endNullable()Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;
-
end
Builds a buffer from the current batch and resets the building state.Unlike
endNullable(), this always builds a buffer even if there are no vertices in the current batch.- Returns:
- the buffer built from the current batch
- Throws:
IllegalStateException- if this builder has not begun building- Mappings:
Namespace Name Mixin selector official dLenf;d()Lenf$b;intermediary method_1326Lnet/minecraft/class_287;method_1326()Lnet/minecraft/class_287$class_7433;named endLnet/minecraft/client/render/BufferBuilder;end()Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;
-
ensureBuilding
private void ensureBuilding()- Mappings:
Namespace Name Mixin selector official pLenf;p()Vintermediary method_43577Lnet/minecraft/class_287;method_43577()Vnamed ensureBuildingLnet/minecraft/client/render/BufferBuilder;ensureBuilding()V
-
build
- Mappings:
Namespace Name Mixin selector official qLenf;q()Lenf$b;intermediary method_43578Lnet/minecraft/class_287;method_43578()Lnet/minecraft/class_287$class_7433;named buildLnet/minecraft/client/render/BufferBuilder;build()Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;
-
resetBuilding
private void resetBuilding()- Mappings:
Namespace Name Mixin selector official rLenf;r()Vintermediary method_43579Lnet/minecraft/class_287;method_43579()Vnamed resetBuildingLnet/minecraft/client/render/BufferBuilder;resetBuilding()V
-
putByte
public void putByte(int index, byte value) - Specified by:
putBytein interfaceBufferVertexConsumer- Mappings:
Namespace Name Mixin selector official aLenh;a(IB)Vintermediary method_22896Lnet/minecraft/class_4584;method_22896(IB)Vnamed putByteLnet/minecraft/client/render/BufferVertexConsumer;putByte(IB)V
-
putShort
public void putShort(int index, short value) - Specified by:
putShortin interfaceBufferVertexConsumer- Mappings:
Namespace Name Mixin selector official aLenh;a(IS)Vintermediary method_22898Lnet/minecraft/class_4584;method_22898(IS)Vnamed putShortLnet/minecraft/client/render/BufferVertexConsumer;putShort(IS)V
-
putFloat
public void putFloat(int index, float value) - Specified by:
putFloatin interfaceBufferVertexConsumer- Mappings:
Namespace Name Mixin selector official aLenh;a(IF)Vintermediary method_22897Lnet/minecraft/class_4584;method_22897(IF)Vnamed putFloatLnet/minecraft/client/render/BufferVertexConsumer;putFloat(IF)V
-
next
public void next()Starts consuming the next vertex.This method must be called after specifying all elements in a vertex.
- Specified by:
nextin interfaceVertexConsumer- Mappings:
Namespace Name Mixin selector official eLeno;e()Vintermediary method_1344Lnet/minecraft/class_4588;method_1344()Vnamed nextLnet/minecraft/client/render/VertexConsumer;next()V
-
nextElement
public void nextElement()- Specified by:
nextElementin interfaceBufferVertexConsumer- Mappings:
Namespace Name Mixin selector official fLenh;f()Vintermediary method_1325Lnet/minecraft/class_4584;method_1325()Vnamed nextElementLnet/minecraft/client/render/BufferVertexConsumer;nextElement()V
-
color
Specifies the color element of the current vertex.- Specified by:
colorin interfaceBufferVertexConsumer- Specified by:
colorin interfaceVertexConsumer- Returns:
- this consumer, for chaining
- Mappings:
Namespace Name Mixin selector official aLeno;a(IIII)Leno;intermediary method_1336Lnet/minecraft/class_4588;method_1336(IIII)Lnet/minecraft/class_4588;named colorLnet/minecraft/client/render/VertexConsumer;color(IIII)Lnet/minecraft/client/render/VertexConsumer;
-
vertex
public void vertex(float x, float y, float z, float red, float green, float blue, float alpha, float u, float v, int overlay, int light, float normalX, float normalY, float normalZ) Specifies the position, color, texture, overlay, light, and normal elements of the current vertex and starts consuming the next vertex.- Specified by:
vertexin interfaceVertexConsumer- Mappings:
Namespace Name Mixin selector official aLeno;a(FFFFFFFFFIIFFF)Vintermediary method_23919Lnet/minecraft/class_4588;method_23919(FFFFFFFFFIIFFF)Vnamed vertexLnet/minecraft/client/render/VertexConsumer;vertex(FFFFFFFFFIIFFF)V
-
releaseBuiltBuffer
void releaseBuiltBuffer()- Mappings:
Namespace Name Mixin selector official sLenf;s()Vintermediary method_43580Lnet/minecraft/class_287;method_43580()Vnamed releaseBuiltBufferLnet/minecraft/client/render/BufferBuilder;releaseBuiltBuffer()V
-
clear
public void clear()- Mappings:
Namespace Name Mixin selector official gLenf;g()Vintermediary method_1343Lnet/minecraft/class_287;method_1343()Vnamed clearLnet/minecraft/client/render/BufferBuilder;clear()V
-
reset
public void reset()- Mappings:
Namespace Name Mixin selector official hLenf;h()Vintermediary method_23477Lnet/minecraft/class_287;method_23477()Vnamed resetLnet/minecraft/client/render/BufferBuilder;reset()V
-
method_54558
public void method_54558()- Mappings:
Namespace Name Mixin selector official iLenf;i()Vintermediary method_54558Lnet/minecraft/class_287;method_54558()Vnamed method_54558Lnet/minecraft/client/render/BufferBuilder;method_54558()V
-
getCurrentElement
- Specified by:
getCurrentElementin interfaceBufferVertexConsumer- Mappings:
Namespace Name Mixin selector official jLenh;j()Lenq;intermediary method_22900Lnet/minecraft/class_4584;method_22900()Lnet/minecraft/class_296;named getCurrentElementLnet/minecraft/client/render/BufferVertexConsumer;getCurrentElement()Lnet/minecraft/client/render/VertexFormatElement;
-
isBuilding
public boolean isBuilding()- Mappings:
Namespace Name Mixin selector official kLenf;k()Zintermediary method_22893Lnet/minecraft/class_287;method_22893()Znamed isBuildingLnet/minecraft/client/render/BufferBuilder;isBuilding()Z
-
slice
- Mappings:
Namespace Name Mixin selector official cLenf;c(II)Ljava/nio/ByteBuffer;intermediary method_43576Lnet/minecraft/class_287;method_43576(II)Ljava/nio/ByteBuffer;named sliceLnet/minecraft/client/render/BufferBuilder;slice(II)Ljava/nio/ByteBuffer;
-