Interface WorldRenderContext


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).
  • Method Details

    • worldRenderer

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

      MatrixStack matrixStack()
    • tickDelta

      float tickDelta()
    • limitTime

      long limitTime()
    • blockOutlines

      boolean blockOutlines()
    • camera

      Camera camera()
    • gameRenderer

      GameRenderer gameRenderer()
    • lightmapTextureManager

      LightmapTextureManager lightmapTextureManager()
    • projectionMatrix

      org.joml.Matrix4f projectionMatrix()
    • world

      ClientWorld world()
      Convenient access to {WorldRenderer.world}.
      Returns:
      world renderer's client world instance
    • 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 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 Frustum frustum()
      View frustum, after it is initialized. Will be null during WorldRenderEvents.START.