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 official eat
intermediary net/minecraft/class_291
named net/minecraft/client/gl/VertexBuffer
-
Field Summary
Modifier and TypeFieldDescriptionprivate VertexFormat.DrawMode
private RenderSystem.IndexBuffer
private int
private VertexFormat.IndexType
private int
private int
private int
private @Nullable VertexFormat
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
bind()
Sets this vertex buffer as the current one.void
close()
private RenderSystem.IndexBuffer
configureIndexBuffer
(BufferBuilder.DrawArrayParameters parameters, ByteBuffer data) private VertexFormat
configureVertexFormat
(BufferBuilder.DrawArrayParameters parameters, ByteBuffer data) void
Draws the contents in this vertex buffer withshader
.void
Draws the contents in this vertex buffer.private void
drawInternal
(Matrix4f viewMatrix, Matrix4f projectionMatrix, Shader shader) private VertexFormat.IndexType
boolean
isClosed()
static void
unbind()
void
upload
(BufferBuilder.BuiltBuffer buffer) Uploads the contents ofbuffer
to GPU, discarding previously uploaded data.
-
Field Details
-
vertexBufferId
private int vertexBufferId- Mappings:
Namespace Name Mixin selector official a
Leat;a:I
intermediary field_1594
Lnet/minecraft/class_291;field_1594:I
named vertexBufferId
Lnet/minecraft/client/gl/VertexBuffer;vertexBufferId:I
-
indexBufferId
private int indexBufferId- Mappings:
Namespace Name Mixin selector official b
Leat;b:I
intermediary field_27366
Lnet/minecraft/class_291;field_27366:I
named indexBufferId
Lnet/minecraft/client/gl/VertexBuffer;indexBufferId:I
-
vertexArrayId
private int vertexArrayId- Mappings:
Namespace Name Mixin selector official c
Leat;c:I
intermediary field_29338
Lnet/minecraft/class_291;field_29338:I
named vertexArrayId
Lnet/minecraft/client/gl/VertexBuffer;vertexArrayId:I
-
vertexFormat
- Mappings:
Namespace Name Mixin selector official d
Leat;d:Leav;
intermediary field_29339
Lnet/minecraft/class_291;field_29339:Lnet/minecraft/class_293;
named vertexFormat
Lnet/minecraft/client/gl/VertexBuffer;vertexFormat:Lnet/minecraft/client/render/VertexFormat;
-
indexBuffer
- Mappings:
Namespace Name Mixin selector official e
Leat;e:Lcom/mojang/blaze3d/systems/RenderSystem$a;
intermediary field_38983
Lnet/minecraft/class_291;field_38983:Lcom/mojang/blaze3d/systems/RenderSystem$class_5590;
named indexBuffer
Lnet/minecraft/client/gl/VertexBuffer;indexBuffer:Lcom/mojang/blaze3d/systems/RenderSystem$IndexBuffer;
-
indexType
- Mappings:
Namespace Name Mixin selector official f
Leat;f:Leav$a;
intermediary field_27367
Lnet/minecraft/class_291;field_27367:Lnet/minecraft/class_293$class_5595;
named indexType
Lnet/minecraft/client/gl/VertexBuffer;indexType:Lnet/minecraft/client/render/VertexFormat$IndexType;
-
vertexCount
private int vertexCount- Mappings:
Namespace Name Mixin selector official g
Leat;g:I
intermediary field_1593
Lnet/minecraft/class_291;field_1593:I
named vertexCount
Lnet/minecraft/client/gl/VertexBuffer;vertexCount:I
-
drawMode
- Mappings:
Namespace Name Mixin selector official h
Leat;h:Leav$b;
intermediary field_27368
Lnet/minecraft/class_291;field_27368:Lnet/minecraft/class_293$class_5596;
named drawMode
Lnet/minecraft/client/gl/VertexBuffer;drawMode:Lnet/minecraft/client/render/VertexFormat$DrawMode;
-
-
Constructor Details
-
VertexBuffer
public VertexBuffer()
-
-
Method Details
-
upload
Uploads the contents ofbuffer
to GPU, discarding previously uploaded data.The caller of this method must bind this vertex buffer before calling this method.
- Mappings:
Namespace Name Mixin selector official a
Leat;a(Leal$b;)V
intermediary method_1352
Lnet/minecraft/class_291;method_1352(Lnet/minecraft/class_287$class_7433;)V
named upload
Lnet/minecraft/client/gl/VertexBuffer;upload(Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;)V
-
configureVertexFormat
private VertexFormat configureVertexFormat(BufferBuilder.DrawArrayParameters parameters, ByteBuffer data) - Mappings:
Namespace Name Mixin selector official a
Leat;a(Leal$a;Ljava/nio/ByteBuffer;)Leav;
intermediary method_43442
Lnet/minecraft/class_291;method_43442(Lnet/minecraft/class_287$class_4574;Ljava/nio/ByteBuffer;)Lnet/minecraft/class_293;
named configureVertexFormat
Lnet/minecraft/client/gl/VertexBuffer;configureVertexFormat(Lnet/minecraft/client/render/BufferBuilder$DrawArrayParameters;Ljava/nio/ByteBuffer;)Lnet/minecraft/client/render/VertexFormat;
-
configureIndexBuffer
@Nullable private RenderSystem.IndexBuffer configureIndexBuffer(BufferBuilder.DrawArrayParameters parameters, ByteBuffer data) - Mappings:
Namespace Name Mixin selector official b
Leat;b(Leal$a;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$a;
intermediary method_43443
Lnet/minecraft/class_291;method_43443(Lnet/minecraft/class_287$class_4574;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$class_5590;
named configureIndexBuffer
Lnet/minecraft/client/gl/VertexBuffer;configureIndexBuffer(Lnet/minecraft/client/render/BufferBuilder$DrawArrayParameters;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$IndexBuffer;
-
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 official a
Leat;a()V
intermediary method_1353
Lnet/minecraft/class_291;method_1353()V
named bind
Lnet/minecraft/client/gl/VertexBuffer;bind()V
-
unbind
public static void unbind()- Mappings:
Namespace Name Mixin selector official b
Leat;b()V
intermediary method_1354
Lnet/minecraft/class_291;method_1354()V
named unbind
Lnet/minecraft/client/gl/VertexBuffer;unbind()V
-
drawElements
public void drawElements()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, Shader)
, the caller of this method must manually bind a shader before calling this method.- Mappings:
Namespace Name Mixin selector official c
Leat;c()V
intermediary method_35665
Lnet/minecraft/class_291;method_35665()V
named drawElements
Lnet/minecraft/client/gl/VertexBuffer;drawElements()V
-
getIndexType
- Mappings:
Namespace Name Mixin selector official f
Leat;f()Leav$a;
intermediary method_43445
Lnet/minecraft/class_291;method_43445()Lnet/minecraft/class_293$class_5595;
named getIndexType
Lnet/minecraft/client/gl/VertexBuffer;getIndexType()Lnet/minecraft/client/render/VertexFormat$IndexType;
-
draw
Draws the contents in this vertex buffer withshader
.The caller of this method must bind this vertex buffer before calling this method.
- Mappings:
Namespace Name Mixin selector official a
Leat;a(Ld;Ld;Lfad;)V
intermediary method_34427
Lnet/minecraft/class_291;method_34427(Lnet/minecraft/class_1159;Lnet/minecraft/class_1159;Lnet/minecraft/class_5944;)V
named draw
Lnet/minecraft/client/gl/VertexBuffer;draw(Lnet/minecraft/util/math/Matrix4f;Lnet/minecraft/util/math/Matrix4f;Lnet/minecraft/client/render/Shader;)V
-
drawInternal
- Mappings:
Namespace Name Mixin selector official b
Leat;b(Ld;Ld;Lfad;)V
intermediary method_34431
Lnet/minecraft/class_291;method_34431(Lnet/minecraft/class_1159;Lnet/minecraft/class_1159;Lnet/minecraft/class_5944;)V
named drawInternal
Lnet/minecraft/client/gl/VertexBuffer;drawInternal(Lnet/minecraft/util/math/Matrix4f;Lnet/minecraft/util/math/Matrix4f;Lnet/minecraft/client/render/Shader;)V
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-
getVertexFormat
- Mappings:
Namespace Name Mixin selector official d
Leat;d()Leav;
intermediary method_34435
Lnet/minecraft/class_291;method_34435()Lnet/minecraft/class_293;
named getVertexFormat
Lnet/minecraft/client/gl/VertexBuffer;getVertexFormat()Lnet/minecraft/client/render/VertexFormat;
-
isClosed
public boolean isClosed()- Mappings:
Namespace Name Mixin selector official e
Leat;e()Z
intermediary method_43444
Lnet/minecraft/class_291;method_43444()Z
named isClosed
Lnet/minecraft/client/gl/VertexBuffer;isClosed()Z
-