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 named net/minecraft/client/gl/VertexBuffer
intermediary net/minecraft/class_291
official fad
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprivate VertexFormat.DrawMode
private int
private int
private VertexFormat.IndexType
private RenderSystem.ShapeIndexBuffer
private final VertexBuffer.Usage
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()
void
draw()
Draws the contents in this vertex buffer.void
draw
(Matrix4f viewMatrix, Matrix4f projectionMatrix, ShaderProgram program) Draws the contents in this vertex buffer withprogram
.private void
drawInternal
(Matrix4f viewMatrix, Matrix4f projectionMatrix, ShaderProgram program) private VertexFormat.IndexType
boolean
isClosed()
static void
unbind()
void
upload
(BufferBuilder.BuiltBuffer buffer) Uploads the contents ofbuffer
to GPU, discarding previously uploaded data.private RenderSystem.ShapeIndexBuffer
uploadIndexBuffer
(BufferBuilder.DrawParameters parameters, @Nullable ByteBuffer indexBuffer) private VertexFormat
uploadVertexBuffer
(BufferBuilder.DrawParameters parameters, @Nullable ByteBuffer vertexBuffer)
-
Field Details
-
usage
- Mappings:
Namespace Name Mixin selector named usage
Lnet/minecraft/client/gl/VertexBuffer;usage:Lnet/minecraft/client/gl/VertexBuffer$Usage;
intermediary field_44792
Lnet/minecraft/class_291;field_44792:Lnet/minecraft/class_291$class_8555;
official a
Lfad;a:Lfad$a;
-
vertexBufferId
private int vertexBufferId- Mappings:
Namespace Name Mixin selector named vertexBufferId
Lnet/minecraft/client/gl/VertexBuffer;vertexBufferId:I
intermediary field_1594
Lnet/minecraft/class_291;field_1594:I
official b
Lfad;b:I
-
indexBufferId
private int indexBufferId- Mappings:
Namespace Name Mixin selector named indexBufferId
Lnet/minecraft/client/gl/VertexBuffer;indexBufferId:I
intermediary field_27366
Lnet/minecraft/class_291;field_27366:I
official c
Lfad;c:I
-
vertexArrayId
private int vertexArrayId- Mappings:
Namespace Name Mixin selector named vertexArrayId
Lnet/minecraft/client/gl/VertexBuffer;vertexArrayId:I
intermediary field_29338
Lnet/minecraft/class_291;field_29338:I
official d
Lfad;d:I
-
vertexFormat
- Mappings:
Namespace Name Mixin selector named vertexFormat
Lnet/minecraft/client/gl/VertexBuffer;vertexFormat:Lnet/minecraft/client/render/VertexFormat;
intermediary field_29339
Lnet/minecraft/class_291;field_29339:Lnet/minecraft/class_293;
official e
Lfad;e:Lfaf;
-
indexType
- Mappings:
Namespace Name Mixin selector named indexType
Lnet/minecraft/client/gl/VertexBuffer;indexType:Lnet/minecraft/client/render/VertexFormat$IndexType;
intermediary field_27367
Lnet/minecraft/class_291;field_27367:Lnet/minecraft/class_293$class_5595;
official g
Lfad;g:Lfaf$a;
-
indexCount
private int indexCount- Mappings:
Namespace Name Mixin selector named indexCount
Lnet/minecraft/client/gl/VertexBuffer;indexCount:I
intermediary field_1593
Lnet/minecraft/class_291;field_1593:I
official h
Lfad;h:I
-
drawMode
- Mappings:
Namespace Name Mixin selector named drawMode
Lnet/minecraft/client/gl/VertexBuffer;drawMode:Lnet/minecraft/client/render/VertexFormat$DrawMode;
intermediary field_27368
Lnet/minecraft/class_291;field_27368:Lnet/minecraft/class_293$class_5596;
official i
Lfad;i:Lfaf$b;
-
-
Constructor Details
-
VertexBuffer
- Mappings:
Namespace Name Mixin selector named <init>
Lnet/minecraft/client/gl/VertexBuffer;<init>(Lnet/minecraft/client/gl/VertexBuffer$Usage;)V
intermediary <init>
Lnet/minecraft/class_291;<init>(Lnet/minecraft/class_291$class_8555;)V
official <init>
Lfad;<init>(Lfad$a;)V
-
-
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 named upload
Lnet/minecraft/client/gl/VertexBuffer;upload(Lnet/minecraft/client/render/BufferBuilder$BuiltBuffer;)V
intermediary method_1352
Lnet/minecraft/class_291;method_1352(Lnet/minecraft/class_287$class_7433;)V
official a
Lfad;a(Lezv$b;)V
-
uploadVertexBuffer
private VertexFormat uploadVertexBuffer(BufferBuilder.DrawParameters parameters, @Nullable @Nullable ByteBuffer vertexBuffer) - Mappings:
Namespace Name Mixin selector named uploadVertexBuffer
Lnet/minecraft/client/gl/VertexBuffer;uploadVertexBuffer(Lnet/minecraft/client/render/BufferBuilder$DrawParameters;Ljava/nio/ByteBuffer;)Lnet/minecraft/client/render/VertexFormat;
intermediary method_43442
Lnet/minecraft/class_291;method_43442(Lnet/minecraft/class_287$class_4574;Ljava/nio/ByteBuffer;)Lnet/minecraft/class_293;
official a
Lfad;a(Lezv$a;Ljava/nio/ByteBuffer;)Lfaf;
-
uploadIndexBuffer
@Nullable private RenderSystem.ShapeIndexBuffer uploadIndexBuffer(BufferBuilder.DrawParameters parameters, @Nullable @Nullable ByteBuffer indexBuffer) - Mappings:
Namespace Name Mixin selector named uploadIndexBuffer
Lnet/minecraft/client/gl/VertexBuffer;uploadIndexBuffer(Lnet/minecraft/client/render/BufferBuilder$DrawParameters;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$ShapeIndexBuffer;
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;
official b
Lfad;b(Lezv$a;Ljava/nio/ByteBuffer;)Lcom/mojang/blaze3d/systems/RenderSystem$a;
-
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 named bind
Lnet/minecraft/client/gl/VertexBuffer;bind()V
intermediary method_1353
Lnet/minecraft/class_291;method_1353()V
official a
Lfad;a()V
-
unbind
public static void unbind()- Mappings:
Namespace Name Mixin selector named unbind
Lnet/minecraft/client/gl/VertexBuffer;unbind()V
intermediary method_1354
Lnet/minecraft/class_291;method_1354()V
official b
Lfad;b()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 named draw
Lnet/minecraft/client/gl/VertexBuffer;draw()V
intermediary method_35665
Lnet/minecraft/class_291;method_35665()V
official c
Lfad;c()V
-
getIndexType
- Mappings:
Namespace Name Mixin selector named getIndexType
Lnet/minecraft/client/gl/VertexBuffer;getIndexType()Lnet/minecraft/client/render/VertexFormat$IndexType;
intermediary method_43445
Lnet/minecraft/class_291;method_43445()Lnet/minecraft/class_293$class_5595;
official f
Lfad;f()Lfaf$a;
-
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 named draw
Lnet/minecraft/client/gl/VertexBuffer;draw(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/client/gl/ShaderProgram;)V
intermediary method_34427
Lnet/minecraft/class_291;method_34427(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/class_5944;)V
official a
Lfad;a(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lgee;)V
-
drawInternal
- Mappings:
Namespace Name Mixin selector named drawInternal
Lnet/minecraft/client/gl/VertexBuffer;drawInternal(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/client/gl/ShaderProgram;)V
intermediary method_34431
Lnet/minecraft/class_291;method_34431(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lnet/minecraft/class_5944;)V
official b
Lfad;b(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;Lgee;)V
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-
getVertexFormat
- Mappings:
Namespace Name Mixin selector named getVertexFormat
Lnet/minecraft/client/gl/VertexBuffer;getVertexFormat()Lnet/minecraft/client/render/VertexFormat;
intermediary method_34435
Lnet/minecraft/class_291;method_34435()Lnet/minecraft/class_293;
official d
Lfad;d()Lfaf;
-
isClosed
public boolean isClosed()- Mappings:
Namespace Name Mixin selector named isClosed
Lnet/minecraft/client/gl/VertexBuffer;isClosed()Z
intermediary method_43444
Lnet/minecraft/class_291;method_43444()Z
official e
Lfad;e()Z
-