Class LevelRenderer

java.lang.Object
net.minecraft.client.renderer.LevelRenderer
All Implemented Interfaces:
AutoCloseable, PreparableReloadListener, ResourceManagerReloadListener

public class LevelRenderer extends Object implements ResourceManagerReloadListener, AutoCloseable
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • CHUNK_SIZE

      public static final int CHUNK_SIZE
      See Also:
    • HALF_CHUNK_SIZE

      private static final int HALF_CHUNK_SIZE
      See Also:
    • SKY_DISC_RADIUS

      private static final float SKY_DISC_RADIUS
      See Also:
    • MINIMUM_ADVANCED_CULLING_DISTANCE

      private static final int MINIMUM_ADVANCED_CULLING_DISTANCE
      See Also:
    • CEILED_SECTION_DIAGONAL

      private static final double CEILED_SECTION_DIAGONAL
    • MIN_FOG_DISTANCE

      private static final int MIN_FOG_DISTANCE
      See Also:
    • RAIN_RADIUS

      private static final int RAIN_RADIUS
      See Also:
    • RAIN_DIAMETER

      private static final int RAIN_DIAMETER
      See Also:
    • TRANSPARENT_SORT_COUNT

      private static final int TRANSPARENT_SORT_COUNT
      See Also:
    • HALF_A_SECOND_IN_MILLIS

      private static final int HALF_A_SECOND_IN_MILLIS
      See Also:
    • MOON_LOCATION

      private static final ResourceLocation MOON_LOCATION
    • SUN_LOCATION

      private static final ResourceLocation SUN_LOCATION
    • CLOUDS_LOCATION

      private static final ResourceLocation CLOUDS_LOCATION
    • END_SKY_LOCATION

      private static final ResourceLocation END_SKY_LOCATION
    • FORCEFIELD_LOCATION

      private static final ResourceLocation FORCEFIELD_LOCATION
    • RAIN_LOCATION

      private static final ResourceLocation RAIN_LOCATION
    • SNOW_LOCATION

      private static final ResourceLocation SNOW_LOCATION
    • DIRECTIONS

      public static final Direction[] DIRECTIONS
    • minecraft

      private final Minecraft minecraft
    • entityRenderDispatcher

      private final EntityRenderDispatcher entityRenderDispatcher
    • blockEntityRenderDispatcher

      private final BlockEntityRenderDispatcher blockEntityRenderDispatcher
    • renderBuffers

      private final RenderBuffers renderBuffers
    • level

      @Nullable private ClientLevel level
    • recentlyCompiledChunks

      private final BlockingQueue<ChunkRenderDispatcher.RenderChunk> recentlyCompiledChunks
    • renderChunkStorage

      private final AtomicReference<LevelRenderer.RenderChunkStorage> renderChunkStorage
    • renderChunksInFrustum

      private final it.unimi.dsi.fastutil.objects.ObjectArrayList<LevelRenderer.RenderChunkInfo> renderChunksInFrustum
    • globalBlockEntities

      private final Set<BlockEntity> globalBlockEntities
    • lastFullRenderChunkUpdate

      @Nullable private Future<?> lastFullRenderChunkUpdate
    • viewArea

      @Nullable private ViewArea viewArea
    • starBuffer

      @Nullable private VertexBuffer starBuffer
    • skyBuffer

      @Nullable private VertexBuffer skyBuffer
    • darkBuffer

      @Nullable private VertexBuffer darkBuffer
    • generateClouds

      private boolean generateClouds
    • cloudBuffer

      @Nullable private VertexBuffer cloudBuffer
    • frameTimes

      private final RunningTrimmedMean frameTimes
    • ticks

      private int ticks
    • destroyingBlocks

      private final it.unimi.dsi.fastutil.ints.Int2ObjectMap<BlockDestructionProgress> destroyingBlocks
    • destructionProgress

      private final it.unimi.dsi.fastutil.longs.Long2ObjectMap<SortedSet<BlockDestructionProgress>> destructionProgress
    • playingRecords

      private final Map<BlockPos,SoundInstance> playingRecords
    • entityTarget

      @Nullable private RenderTarget entityTarget
    • entityEffect

      @Nullable private PostChain entityEffect
    • translucentTarget

      @Nullable private RenderTarget translucentTarget
    • itemEntityTarget

      @Nullable private RenderTarget itemEntityTarget
    • particlesTarget

      @Nullable private RenderTarget particlesTarget
    • weatherTarget

      @Nullable private RenderTarget weatherTarget
    • cloudsTarget

      @Nullable private RenderTarget cloudsTarget
    • transparencyChain

      @Nullable private PostChain transparencyChain
    • lastCameraX

      private double lastCameraX
    • lastCameraY

      private double lastCameraY
    • lastCameraZ

      private double lastCameraZ
    • lastCameraChunkX

      private int lastCameraChunkX
    • lastCameraChunkY

      private int lastCameraChunkY
    • lastCameraChunkZ

      private int lastCameraChunkZ
    • prevCamX

      private double prevCamX
    • prevCamY

      private double prevCamY
    • prevCamZ

      private double prevCamZ
    • prevCamRotX

      private double prevCamRotX
    • prevCamRotY

      private double prevCamRotY
    • prevCloudX

      private int prevCloudX
    • prevCloudY

      private int prevCloudY
    • prevCloudZ

      private int prevCloudZ
    • prevCloudColor

      private Vec3 prevCloudColor
    • prevCloudsType

      @Nullable private CloudStatus prevCloudsType
    • chunkRenderDispatcher

      @Nullable private ChunkRenderDispatcher chunkRenderDispatcher
    • lastViewDistance

      private int lastViewDistance
    • renderedEntities

      private int renderedEntities
    • culledEntities

      private int culledEntities
    • cullingFrustum

      private Frustum cullingFrustum
    • captureFrustum

      private boolean captureFrustum
    • capturedFrustum

      @Nullable private Frustum capturedFrustum
    • frustumPoints

      private final org.joml.Vector4f[] frustumPoints
    • frustumPos

      private final org.joml.Vector3d frustumPos
    • xTransparentOld

      private double xTransparentOld
    • yTransparentOld

      private double yTransparentOld
    • zTransparentOld

      private double zTransparentOld
    • needsFullRenderChunkUpdate

      private boolean needsFullRenderChunkUpdate
    • nextFullUpdateMillis

      private final AtomicLong nextFullUpdateMillis
    • needsFrustumUpdate

      private final AtomicBoolean needsFrustumUpdate
    • rainSoundTime

      private int rainSoundTime
    • rainSizeX

      private final float[] rainSizeX
    • rainSizeZ

      private final float[] rainSizeZ
  • Constructor Details

  • Method Details

    • renderSnowAndRain

      private void renderSnowAndRain(LightTexture p_109704_, float p_109705_, double p_109706_, double p_109707_, double p_109708_)
    • tickRain

      public void tickRain(Camera p_109694_)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • onResourceManagerReload

      public void onResourceManagerReload(ResourceManager p_109513_)
      Specified by:
      onResourceManagerReload in interface ResourceManagerReloadListener
    • initOutline

      public void initOutline()
    • initTransparency

      private void initTransparency()
    • deinitTransparency

      private void deinitTransparency()
    • doEntityOutline

      public void doEntityOutline()
    • shouldShowEntityOutlines

      public boolean shouldShowEntityOutlines()
    • createDarkSky

      private void createDarkSky()
    • createLightSky

      private void createLightSky()
    • buildSkyDisc

      private static BufferBuilder.RenderedBuffer buildSkyDisc(BufferBuilder p_234268_, float p_234269_)
    • createStars

      private void createStars()
    • drawStars

      private BufferBuilder.RenderedBuffer drawStars(BufferBuilder p_234260_)
    • setLevel

      public void setLevel(@Nullable ClientLevel p_109702_)
    • graphicsChanged

      public void graphicsChanged()
    • allChanged

      public void allChanged()
    • resize

      public void resize(int p_109488_, int p_109489_)
    • getChunkStatistics

      public String getChunkStatistics()
    • getChunkRenderDispatcher

      public ChunkRenderDispatcher getChunkRenderDispatcher()
    • getTotalChunks

      public double getTotalChunks()
    • getLastViewDistance

      public double getLastViewDistance()
    • countRenderedChunks

      public int countRenderedChunks()
    • getEntityStatistics

      public String getEntityStatistics()
    • setupRender

      private void setupRender(Camera p_194339_, Frustum p_194340_, boolean p_194341_, boolean p_194342_)
    • applyFrustum

      private void applyFrustum(Frustum p_194355_)
    • initializeQueueForFullUpdate

      private void initializeQueueForFullUpdate(Camera p_194344_, Queue<LevelRenderer.RenderChunkInfo> p_194345_)
    • addRecentlyCompiledChunk

      public void addRecentlyCompiledChunk(ChunkRenderDispatcher.RenderChunk p_194353_)
    • updateRenderChunks

      private void updateRenderChunks(LinkedHashSet<LevelRenderer.RenderChunkInfo> p_194363_, LevelRenderer.RenderInfoMap p_194364_, Vec3 p_194365_, Queue<LevelRenderer.RenderChunkInfo> p_194366_, boolean p_194367_)
    • getRelativeFrom

      @Nullable private ChunkRenderDispatcher.RenderChunk getRelativeFrom(BlockPos p_109729_, ChunkRenderDispatcher.RenderChunk p_109730_, Direction p_109731_)
    • closeToBorder

      private boolean closeToBorder(BlockPos p_194360_, ChunkRenderDispatcher.RenderChunk p_194361_)
    • captureFrustum

      private void captureFrustum(org.joml.Matrix4f p_253756_, org.joml.Matrix4f p_253787_, double p_254187_, double p_253833_, double p_254547_, Frustum p_253954_)
    • prepareCullFrustum

      public void prepareCullFrustum(PoseStack p_253986_, Vec3 p_253766_, org.joml.Matrix4f p_254341_)
    • renderLevel

      public void renderLevel(PoseStack p_109600_, float p_109601_, long p_109602_, boolean p_109603_, Camera p_109604_, GameRenderer p_109605_, LightTexture p_109606_, org.joml.Matrix4f p_254120_)
    • checkPoseStack

      private void checkPoseStack(PoseStack p_109589_)
    • renderEntity

      private void renderEntity(Entity p_109518_, double p_109519_, double p_109520_, double p_109521_, float p_109522_, PoseStack p_109523_, MultiBufferSource p_109524_)
    • renderChunkLayer

      private void renderChunkLayer(RenderType p_172994_, PoseStack p_172995_, double p_172996_, double p_172997_, double p_172998_, org.joml.Matrix4f p_254039_)
    • renderDebug

      private void renderDebug(Camera p_109794_)
    • addFrustumVertex

      private void addFrustumVertex(VertexConsumer p_109666_, int p_109667_)
    • addFrustumQuad

      private void addFrustumQuad(VertexConsumer p_109669_, int p_109670_, int p_109671_, int p_109672_, int p_109673_, int p_109674_, int p_109675_, int p_109676_)
    • captureFrustum

      public void captureFrustum()
    • killFrustum

      public void killFrustum()
    • tick

      public void tick()
    • removeProgress

      private void removeProgress(BlockDestructionProgress p_109766_)
    • renderEndSky

      private void renderEndSky(PoseStack p_109781_)
    • renderSky

      public void renderSky(PoseStack p_202424_, org.joml.Matrix4f p_254034_, float p_202426_, Camera p_202427_, boolean p_202428_, Runnable p_202429_)
    • doesMobEffectBlockSky

      private boolean doesMobEffectBlockSky(Camera p_234311_)
    • renderClouds

      public void renderClouds(PoseStack p_254145_, org.joml.Matrix4f p_254537_, float p_254364_, double p_253843_, double p_253663_, double p_253795_)
    • buildClouds

      private BufferBuilder.RenderedBuffer buildClouds(BufferBuilder p_234262_, double p_234263_, double p_234264_, double p_234265_, Vec3 p_234266_)
    • compileChunks

      private void compileChunks(Camera p_194371_)
    • renderWorldBorder

      private void renderWorldBorder(Camera p_173013_)
    • renderHitOutline

      private void renderHitOutline(PoseStack p_109638_, VertexConsumer p_109639_, Entity p_109640_, double p_109641_, double p_109642_, double p_109643_, BlockPos p_109644_, BlockState p_109645_)
    • renderVoxelShape

      public static void renderVoxelShape(PoseStack p_109655_, VertexConsumer p_109656_, VoxelShape p_109657_, double p_109658_, double p_109659_, double p_109660_, float p_109661_, float p_109662_, float p_109663_, float p_109664_)
    • renderShape

      private static void renderShape(PoseStack p_109783_, VertexConsumer p_109784_, VoxelShape p_109785_, double p_109786_, double p_109787_, double p_109788_, float p_109789_, float p_109790_, float p_109791_, float p_109792_)
    • renderLineBox

      public static void renderLineBox(VertexConsumer p_172966_, double p_172967_, double p_172968_, double p_172969_, double p_172970_, double p_172971_, double p_172972_, float p_172973_, float p_172974_, float p_172975_, float p_172976_)
    • renderLineBox

      public static void renderLineBox(PoseStack p_109647_, VertexConsumer p_109648_, AABB p_109649_, float p_109650_, float p_109651_, float p_109652_, float p_109653_)
    • renderLineBox

      public static void renderLineBox(PoseStack p_109609_, VertexConsumer p_109610_, double p_109611_, double p_109612_, double p_109613_, double p_109614_, double p_109615_, double p_109616_, float p_109617_, float p_109618_, float p_109619_, float p_109620_)
    • renderLineBox

      public static void renderLineBox(PoseStack p_109622_, VertexConsumer p_109623_, double p_109624_, double p_109625_, double p_109626_, double p_109627_, double p_109628_, double p_109629_, float p_109630_, float p_109631_, float p_109632_, float p_109633_, float p_109634_, float p_109635_, float p_109636_)
    • addChainedFilledBoxVertices

      public static void addChainedFilledBoxVertices(BufferBuilder p_109557_, double p_109558_, double p_109559_, double p_109560_, double p_109561_, double p_109562_, double p_109563_, float p_109564_, float p_109565_, float p_109566_, float p_109567_)
    • blockChanged

      public void blockChanged(BlockGetter p_109545_, BlockPos p_109546_, BlockState p_109547_, BlockState p_109548_, int p_109549_)
    • setBlockDirty

      private void setBlockDirty(BlockPos p_109733_, boolean p_109734_)
    • setBlocksDirty

      public void setBlocksDirty(int p_109495_, int p_109496_, int p_109497_, int p_109498_, int p_109499_, int p_109500_)
    • setBlockDirty

      public void setBlockDirty(BlockPos p_109722_, BlockState p_109723_, BlockState p_109724_)
    • setSectionDirtyWithNeighbors

      public void setSectionDirtyWithNeighbors(int p_109491_, int p_109492_, int p_109493_)
    • setSectionDirty

      public void setSectionDirty(int p_109771_, int p_109772_, int p_109773_)
    • setSectionDirty

      private void setSectionDirty(int p_109502_, int p_109503_, int p_109504_, boolean p_109505_)
    • playStreamingMusic

      @Deprecated public void playStreamingMusic(@Nullable SoundEvent p_109515_, BlockPos p_109516_)
      Deprecated.
    • playStreamingMusic

      public void playStreamingMusic(@Nullable SoundEvent p_109515_, BlockPos p_109516_, @Nullable RecordItem musicDiscItem)
    • notifyNearbyEntities

      private void notifyNearbyEntities(Level p_109551_, BlockPos p_109552_, boolean p_109553_)
    • addParticle

      public void addParticle(ParticleOptions p_109744_, boolean p_109745_, double p_109746_, double p_109747_, double p_109748_, double p_109749_, double p_109750_, double p_109751_)
    • addParticle

      public void addParticle(ParticleOptions p_109753_, boolean p_109754_, boolean p_109755_, double p_109756_, double p_109757_, double p_109758_, double p_109759_, double p_109760_, double p_109761_)
    • addParticle

      private <T extends ParticleOptions> void addParticle(T p_109736_, double p_109737_, double p_109738_, double p_109739_, double p_109740_, double p_109741_, double p_109742_)
    • addParticleInternal

      @Nullable private Particle addParticleInternal(ParticleOptions p_109796_, boolean p_109797_, double p_109798_, double p_109799_, double p_109800_, double p_109801_, double p_109802_, double p_109803_)
    • addParticleInternal

      @Nullable private Particle addParticleInternal(ParticleOptions p_109805_, boolean p_109806_, boolean p_109807_, double p_109808_, double p_109809_, double p_109810_, double p_109811_, double p_109812_, double p_109813_)
    • calculateParticleLevel

      private ParticleStatus calculateParticleLevel(boolean p_109768_)
    • clear

      public void clear()
    • globalLevelEvent

      public void globalLevelEvent(int p_109507_, BlockPos p_109508_, int p_109509_)
    • levelEvent

      public void levelEvent(int p_234305_, BlockPos p_234306_, int p_234307_)
    • destroyBlockProgress

      public void destroyBlockProgress(int p_109775_, BlockPos p_109776_, int p_109777_)
    • hasRenderedAllChunks

      public boolean hasRenderedAllChunks()
    • needsUpdate

      public void needsUpdate()
    • updateGlobalBlockEntities

      public void updateGlobalBlockEntities(Collection<BlockEntity> p_109763_, Collection<BlockEntity> p_109764_)
    • getLightColor

      public static int getLightColor(BlockAndTintGetter p_109542_, BlockPos p_109543_)
    • getLightColor

      public static int getLightColor(BlockAndTintGetter p_109538_, BlockState p_109539_, BlockPos p_109540_)
    • isChunkCompiled

      public boolean isChunkCompiled(BlockPos p_202431_)
    • entityTarget

      @Nullable public RenderTarget entityTarget()
    • getTranslucentTarget

      @Nullable public RenderTarget getTranslucentTarget()
    • getItemEntityTarget

      @Nullable public RenderTarget getItemEntityTarget()
    • getParticlesTarget

      @Nullable public RenderTarget getParticlesTarget()
    • getWeatherTarget

      @Nullable public RenderTarget getWeatherTarget()
    • getCloudsTarget

      @Nullable public RenderTarget getCloudsTarget()