Interface WorldRenderContext


@Environment(CLIENT)
public interface WorldRenderContext
Except as noted below, the properties exposed here match the parameters passed to WorldRenderer.render(MatrixStack, float, long, boolean, Camera, GameRenderer, LightmapTextureManager, Matrix4f).
  • Nested Class Summary

    Nested Classes
    Modifier and Type Interface Description
    static interface  WorldRenderContext.BlockOutlineContext
    Used in BLOCK_OUTLINE to convey the parameters normally sent to WorldRenderer.drawBlockOutline.
  • Method Summary

    Modifier and Type Method Description
    boolean advancedTranslucency()
    Test to know if "fabulous" graphics mode is enabled.
    boolean blockOutlines()  
    net.minecraft.client.render.Camera camera()  
    @Nullable net.minecraft.client.render.VertexConsumerProvider consumers()
    The VertexConsumerProvider instance being used by the world renderer for most non-terrain renders.
    @Nullable net.minecraft.client.render.Frustum frustum()
    View frustum, after it is initialized.
    net.minecraft.client.render.GameRenderer gameRenderer()  
    net.minecraft.client.render.LightmapTextureManager lightmapTextureManager()  
    long limitTime()  
    net.minecraft.client.util.math.MatrixStack matrixStack()  
    net.minecraft.util.profiler.Profiler profiler()
    Convenient access to game performance profiler.
    net.minecraft.util.math.Matrix4f projectionMatrix()  
    float tickDelta()  
    net.minecraft.client.world.ClientWorld world()
    Convenient access to {WorldRenderer.world}.
    net.minecraft.client.render.WorldRenderer worldRenderer()
    The world renderer instance doing the rendering and invoking the event.
  • Method Details

    • worldRenderer

      net.minecraft.client.render.WorldRenderer worldRenderer()
      The world renderer instance doing the rendering and invoking the event.
      Returns:
      WorldRenderer instance invoking the event
    • matrixStack

      net.minecraft.client.util.math.MatrixStack matrixStack()
    • tickDelta

      float tickDelta()
    • limitTime

      long limitTime()
    • blockOutlines

      boolean blockOutlines()
    • camera

      net.minecraft.client.render.Camera camera()
    • gameRenderer

      net.minecraft.client.render.GameRenderer gameRenderer()
    • lightmapTextureManager

      net.minecraft.client.render.LightmapTextureManager lightmapTextureManager()
    • projectionMatrix

      net.minecraft.util.math.Matrix4f projectionMatrix()
    • world

      net.minecraft.client.world.ClientWorld world()
      Convenient access to {WorldRenderer.world}.
      Returns:
      world renderer's client world instance
    • profiler

      net.minecraft.util.profiler.Profiler profiler()
      Convenient access to game performance profiler.
      Returns:
      the active profiler
    • advancedTranslucency

      boolean advancedTranslucency()
      Test to know if "fabulous" graphics mode is enabled.

      Use this for renders that need to render on top of all translucency to activate or deactivate different event handlers to get optimal depth testing results. When fabulous is off, it may be better to render during WorldRenderLastCallback after clouds and weather are drawn. Conversely, when fabulous mode is on, it may be better to draw during WorldRenderPostTranslucentCallback, before the fabulous mode composite shader runs, depending on which translucent buffer is being targeted.

      Returns:
      true when "fabulous" graphics mode is enabled.
    • consumers

      @Nullable @Nullable net.minecraft.client.render.VertexConsumerProvider consumers()
      The VertexConsumerProvider instance being used by the world renderer for most non-terrain renders. Generally this will be better for most use cases because quads for the same layer can be buffered incrementally and then drawn all at once by the world renderer.

      IMPORTANT - all vertex coordinates sent to consumers should be relative to the camera to be consistent with other quads emitted by the world renderer and other mods. If this isn't possible, caller should use a separate "immediate" instance.

      This property is null before WorldRenderEvents.BEFORE_ENTITIES and after WorldRenderEvents.BEFORE_DEBUG_RENDER because the consumer buffers are not available before or drawn after that in vanilla world rendering. Renders that cannot draw in one of the supported events must be drawn directly to the frame buffer, preferably in WorldRenderEvents.LAST to avoid being overdrawn or cleared.

    • frustum

      @Nullable @Nullable net.minecraft.client.render.Frustum frustum()
      View frustum, after it is initialized. Will be null during WorldRenderEvents.START.