public interface RenderContext
Modifier and Type | Interface and Description |
---|---|
static interface |
RenderContext.QuadTransform |
Modifier and Type | Method and Description |
---|---|
Consumer<net.minecraft.client.render.model.BakedModel> |
fallbackConsumer()
Fabric causes vanilla baked models to send themselves
via this interface.
|
QuadEmitter |
getEmitter()
Returns a
QuadEmitter instance that emits directly to the render buffer. |
Consumer<Mesh> |
meshConsumer()
Used by models to send vertex data previously baked via
MeshBuilder . |
void |
popTransform()
Removes the transformation added by the last call to
pushTransform(QuadTransform) . |
void |
pushTransform(RenderContext.QuadTransform transform)
Causes all models/quads/meshes sent to this consumer to be transformed by the provided
RenderContext.QuadTransform that edits each quad before buffering. |
Consumer<Mesh> meshConsumer()
MeshBuilder
.
The fastest option and preferred whenever feasible.Consumer<net.minecraft.client.render.model.BakedModel> fallbackConsumer()
QuadEmitter getEmitter()
QuadEmitter
instance that emits directly to the render buffer.
It remains necessary to call QuadEmitter.emit()
to output the quad.
This method will always be less performant than passing pre-baked meshes
via meshConsumer()
. It should be used sparingly for model components that
demand it - text, icons, dynamic indicators, or other elements that vary too
much for static baking to be feasible.
Calling this method invalidates any QuadEmitter
returned earlier.
Will be threadlocal/re-used - do not retain references.
void pushTransform(RenderContext.QuadTransform transform)
RenderContext.QuadTransform
that edits each quad before buffering. Quads in the mesh will
be passed to the RenderContext.QuadTransform
for modification before offsets, face culling or lighting are applied.
Meant for animation and mesh customization.
You MUST call popTransform()
after model is done outputting quads.
More than one transformer can be added to the context. Transformers are applied in reverse order. (Last pushed is applied first.)
Meshes are never mutated by the transformer - only buffered quads. This ensures thread-safe use of meshes/models across multiple chunk builders.
Only the renderer should implement or extend this interface.
void popTransform()
pushTransform(QuadTransform)
.
MUST be called before exiting from FabricBakedModel
.emit... methods.