Interface RenderContext


public interface RenderContext
This defines the instance made available to models for buffering vertex data at render time.

Only the renderer should implement or extend this interface.

  • Method Details

    • getEmitter

      QuadEmitter getEmitter()
      Returns a QuadEmitter instance that is used to output quads. It is necessary to call QuadEmitter.emit() to output a quad.

      The renderer may optimize certain operations such as Mesh.outputTo(QuadEmitter) when used with this emitter. Thus, using those operations is preferred to using the emitter directly. 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 thread-local/re-used - do not retain references.

    • pushTransform

      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. 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.

    • popTransform

      void popTransform()
      Removes the transformation added by the last call to pushTransform(QuadTransform). MUST be called before exiting from FabricBakedModel .emit... methods.
    • meshConsumer

      @Deprecated default Consumer<Mesh> meshConsumer()
      Deprecated.
    • bakedModelConsumer

      @Deprecated default RenderContext.BakedModelConsumer bakedModelConsumer()
      Deprecated.
      Use emitBlockQuads or emitItemQuads on the baked model that you want to consume instead.
    • fallbackConsumer

      @Deprecated default Consumer<BakedModel> fallbackConsumer()
      Deprecated.
      Use emitBlockQuads or emitItemQuads on the baked model that you want to consume instead.