Package net.minecraft.client.gl
Class VertexBuffer
java.lang.Object
net.minecraft.client.gl.VertexBuffer
- All Implemented Interfaces:
AutoCloseable
Stores vertex data on GPU.
If you don't need to change the geometry, you can upload data once and reuse it every frame. For example, star rendering uses this technique to save bandwidth.
- Implementation Note:
- This is mostly a wrapper around vertex buffer object (VBO), element buffer object (EBO), and vertex array object (VAO).
- Mappings:
Namespace Name intermediary net/minecraft/class_291official eienamed net/minecraft/client/gl/VertexBuffer
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate VertexFormat.DrawModeprivate intprivate intprivate VertexFormat.IndexTypeprivate RenderSystem.ShapeIndexBufferprivate final VertexBuffer.Usageprivate intprivate intprivate @Nullable VertexFormat -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbind()Sets this vertex buffer as the current one.voidclose()voiddraw()Draws the contents in this vertex buffer.voiddraw(Matrix4f viewMatrix, Matrix4f projectionMatrix, ShaderProgram program) Draws the contents in this vertex buffer withprogram.private voiddrawInternal(Matrix4f viewMatrix, Matrix4f projectionMatrix, ShaderProgram program) private VertexFormat.IndexTypebooleanisClosed()static voidunbind()voidupload(BufferBuilder.BuiltBuffer buffer) Uploads the contents ofbufferto GPU, discarding previously uploaded data.private RenderSystem.ShapeIndexBufferuploadIndexBuffer(BufferBuilder.DrawParameters parameters, ByteBuffer indexBuffer) private VertexFormatuploadVertexBuffer(BufferBuilder.DrawParameters parameters, ByteBuffer vertexBuffer)
-
Field Details
-
usage
- Mappings:
Namespace Name Mixin selector intermediary field_44792Lnet/minecraft/class_291;field_44792:Lnet/minecraft/class_291$class_8555;official aLeie;a:Leie$a;named usageLnet/minecraft/client/gl/VertexBuffer;usage:Lnet/minecraft/client/gl/VertexBuffer$Usage;
-
vertexBufferId
private int vertexBufferId- Mappings:
Namespace Name Mixin selector intermediary field_1594Lnet/minecraft/class_291;field_1594:Iofficial bLeie;b:Inamed vertexBufferIdLnet/minecraft/client/gl/VertexBuffer;vertexBufferId:I
-
indexBufferId
private int indexBufferId- Mappings:
Namespace Name Mixin selector intermediary field_27366Lnet/minecraft/class_291;field_27366:Iofficial cLeie;c:Inamed indexBufferIdLnet/minecraft/client/gl/VertexBuffer;indexBufferId:I
-
vertexArrayId
private int vertexArrayId- Mappings:
Namespace Name Mixin selector intermediary field_29338Lnet/minecraft/class_291;field_29338:Iofficial dLeie;d:Inamed vertexArrayIdLnet/minecraft/client/gl/VertexBuffer;vertexArrayId:I
-
vertexFormat
- Mappings:
Namespace Name Mixin selector intermediary field_29339Lnet/minecraft/class_291;field_29339:Lnet/minecraft/class_293;official eLeie;e:Leig;named vertexFormatLnet/minecraft/client/gl/VertexBuffer;vertexFormat:Lnet/minecraft/client/render/VertexFormat;
-
indexType
- Mappings:
Namespace Name Mixin selector intermediary field_27367Lnet/minecraft/class_291;field_27367:Lnet/minecraft/class_293$class_5595;official gLeie;g:Leig$a;named indexTypeLnet/minecraft/client/gl/VertexBuffer;indexType:Lnet/minecraft/client/render/VertexFormat$IndexType;
-
indexCount
private int indexCount- Mappings:
Namespace Name Mixin selector intermediary field_1593Lnet/minecraft/class_291;field_1593:Iofficial hLeie;h:Inamed indexCountLnet/minecraft/client/gl/VertexBuffer;indexCount:I
-
drawMode
- Mappings:
Namespace Name Mixin selector intermediary field_27368Lnet/minecraft/class_291;field_27368:Lnet/minecraft/class_293$class_5596;official iLeie;i:Leig$b;named drawModeLnet/minecraft/client/gl/VertexBuffer;drawMode:Lnet/minecraft/client/render/VertexFormat$DrawMode;
-
-
Constructor Details
-
VertexBuffer
- Mappings:
Namespace Name Mixin selector intermediary <init>Lnet/minecraft/class_291;<init>(Lnet/minecraft/class_291$class_8555;)Vofficial <init>Leie;<init>(Leie$a;)Vnamed <init>Lnet/minecraft/client/gl/VertexBuffer;<init>(Lnet/minecraft/client/gl/VertexBuffer$Usage;)V
-
-
Method Details
-
upload
Uploads the contents ofbufferto GPU, discarding previously uploaded data.The caller of this method must bind this vertex buffer before calling this method.
- Mappings:
Namespace Name Mixin selector intermediary method_1352Lnet/minecraft/class_291;method_1352(Lnet/minecraft/class_287$class_7433;)Vofficial aLeie;a(Lehw$b;)Vnamed uploadLnet/minecraft/client/gl/VertexBuffer;upload(Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;)V
-
uploadVertexBuffer
private VertexFormat uploadVertexBuffer(BufferBuilder.DrawParameters parameters, ByteBuffer vertexBuffer) - Mappings:
Namespace Name Mixin selector intermediary method_43442Lnet/minecraft/class_291;method_43442(Lnet/minecraft/class_287$class_4574;Ljava/nio/ByteBuffer;)Lnet/minecraft/class_293;official aLeie;a(Lehw$a;Ljava/nio/ByteBuffer;)Leig;named uploadVertexBufferLnet/minecraft/client/gl/VertexBuffer;uploadVertexBuffer(Lnet/minecraft/client/render/BufferBuilder$DrawParameters;Ljava/nio/ByteBuffer;)Lnet/minecraft/client/render/VertexFormat;
-
uploadIndexBuffer
@Nullable private RenderSystem.ShapeIndexBuffer uploadIndexBuffer(BufferBuilder.DrawParameters parameters, ByteBuffer indexBuffer) - Mappings:
Namespace Name Mixin selector intermediary method_43443Lnet/minecraft/class_291;method_43443(Lnet/minecraft/class_287$class_4574;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$class_5590;official bLeie;b(Lehw$a;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$a;named uploadIndexBufferLnet/minecraft/client/gl/VertexBuffer;uploadIndexBuffer(Lnet/minecraft/client/render/BufferBuilder$DrawParameters;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$ShapeIndexBuffer;
-
bind
public void bind()Sets this vertex buffer as the current one.This method must be called before uploading or drawing data.
- Mappings:
Namespace Name Mixin selector intermediary method_1353Lnet/minecraft/class_291;method_1353()Vofficial aLeie;a()Vnamed bindLnet/minecraft/client/gl/VertexBuffer;bind()V
-
unbind
public static void unbind()- Mappings:
Namespace Name Mixin selector intermediary method_1354Lnet/minecraft/class_291;method_1354()Vofficial bLeie;b()Vnamed unbindLnet/minecraft/client/gl/VertexBuffer;unbind()V
-
draw
public void draw()Draws the contents in this vertex buffer.The caller of this method must bind this vertex buffer before calling this method.
Unlike
draw(Matrix4f, Matrix4f, ShaderProgram), the caller of this method must manually bind a shader program before calling this method.- Mappings:
Namespace Name Mixin selector intermediary method_35665Lnet/minecraft/class_291;method_35665()Vofficial cLeie;c()Vnamed drawLnet/minecraft/client/gl/VertexBuffer;draw()V
-
getIndexType
- Mappings:
Namespace Name Mixin selector intermediary method_43445Lnet/minecraft/class_291;method_43445()Lnet/minecraft/class_293$class_5595;official fLeie;f()Leig$a;named getIndexTypeLnet/minecraft/client/gl/VertexBuffer;getIndexType()Lnet/minecraft/client/render/VertexFormat$IndexType;
-
draw
Draws the contents in this vertex buffer withprogram.The caller of this method must bind this vertex buffer before calling this method.
- Mappings:
Namespace Name Mixin selector intermediary method_34427Lnet/minecraft/class_291;method_34427(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/class_5944;)Vofficial aLeie;a(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lfjx;)Vnamed drawLnet/minecraft/client/gl/VertexBuffer;draw(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/client/gl/ShaderProgram;)V
-
drawInternal
- Mappings:
Namespace Name Mixin selector intermediary method_34431Lnet/minecraft/class_291;method_34431(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/class_5944;)Vofficial bLeie;b(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lfjx;)Vnamed drawInternalLnet/minecraft/client/gl/VertexBuffer;drawInternal(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/client/gl/ShaderProgram;)V
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
getVertexFormat
- Mappings:
Namespace Name Mixin selector intermediary method_34435Lnet/minecraft/class_291;method_34435()Lnet/minecraft/class_293;official dLeie;d()Leig;named getVertexFormatLnet/minecraft/client/gl/VertexBuffer;getVertexFormat()Lnet/minecraft/client/render/VertexFormat;
-
isClosed
public boolean isClosed()- Mappings:
Namespace Name Mixin selector intermediary method_43444Lnet/minecraft/class_291;method_43444()Zofficial eLeie;e()Znamed isClosedLnet/minecraft/client/gl/VertexBuffer;isClosed()Z
-