Interface WorldRenderContext


public interface WorldRenderContext
  • Method Details Link icon

    • worldRenderer Link icon

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

      RenderTickCounter tickCounter()
    • blockOutlines Link icon

      boolean blockOutlines()
    • camera Link icon

      Camera camera()
    • gameRenderer Link icon

      GameRenderer gameRenderer()
    • positionMatrix Link icon

      org.joml.Matrix4f positionMatrix()
    • projectionMatrix Link icon

      org.joml.Matrix4f projectionMatrix()
    • world Link icon

      ClientWorld world()
      Convenient access to {WorldRenderer.world}.
      Returns:
      world renderer's client world instance
    • advancedTranslucency Link icon

      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 Link icon

      @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.BLOCK_OUTLINE (translucent) 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 Link icon

      @Nullable @Nullable Frustum frustum()
      View frustum, after it is initialized. Will be null during WorldRenderEvents.START.
    • matrixStack Link icon

      @Nullable @Nullable MatrixStack matrixStack()
      The matrix stack is only not null in WorldRenderEvents.AFTER_ENTITIES or later events.
    • translucentBlockOutline Link icon

      boolean translucentBlockOutline()
      Returns:
      true if the current block outline is being rendered after translucent terrain; false if it is being rendered after solid terrain