Package net.minecraft.client.renderer
Class SectionOcclusionGraph
java.lang.Object
net.minecraft.client.renderer.SectionOcclusionGraph
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final record(package private) static final record(package private) static classprotected static class(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleprivate final AtomicReference<SectionOcclusionGraph.GraphState> private static final Direction[]private Future<?> private static final org.slf4j.Loggerprivate static final intprivate final AtomicBooleanprivate booleanprivate final AtomicReference<SectionOcclusionGraph.GraphEvents> private ViewArea -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddNeighbors(SectionOcclusionGraph.GraphEvents pGraphEvents, ChunkPos pChunkPos) voidaddSectionsInFrustum(Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections) booleanprotected SectionOcclusionGraph.NodegetNode(SectionRenderDispatcher.RenderSection pSection) getRelativeFrom(BlockPos pPos, SectionRenderDispatcher.RenderSection pSection, Direction pDirection) private voidinitializeQueueForFullUpdate(Camera pCamera, Queue<SectionOcclusionGraph.Node> pNodeQueue) voidprivate booleanisInViewDistance(BlockPos pPos, BlockPos pOrigin) voidonChunkLoaded(ChunkPos pChunkPos) voidprivate voidprivate voidrunPartialUpdate(boolean pSmartCull, Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections, Vec3 pCameraPosition) private voidrunUpdates(SectionOcclusionGraph.GraphStorage pGraphStorage, Vec3 pCameraPosition, Queue<SectionOcclusionGraph.Node> pNodeQueue, boolean pSmartCull, Consumer<SectionRenderDispatcher.RenderSection> pSections) private voidscheduleFullUpdate(boolean pSmartCull, Camera pCamera, Vec3 pCameraPosition) voidupdate(boolean pSmartCull, Camera pCamera, Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections) voidwaitAndReset(ViewArea pViewArea)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
DIRECTIONS
-
MINIMUM_ADVANCED_CULLING_DISTANCE
private static final int MINIMUM_ADVANCED_CULLING_DISTANCE- See Also:
-
CEILED_SECTION_DIAGONAL
private static final double CEILED_SECTION_DIAGONAL -
needsFullUpdate
private boolean needsFullUpdate -
fullUpdateTask
-
viewArea
-
currentGraph
-
nextGraphEvents
-
needsFrustumUpdate
-
-
Constructor Details
-
SectionOcclusionGraph
public SectionOcclusionGraph()
-
-
Method Details
-
waitAndReset
-
invalidate
public void invalidate() -
addSectionsInFrustum
public void addSectionsInFrustum(Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections) -
consumeFrustumUpdate
public boolean consumeFrustumUpdate() -
onChunkLoaded
-
onSectionCompiled
-
update
public void update(boolean pSmartCull, Camera pCamera, Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections) -
scheduleFullUpdate
-
runPartialUpdate
private void runPartialUpdate(boolean pSmartCull, Frustum pFrustum, List<SectionRenderDispatcher.RenderSection> pSections, Vec3 pCameraPosition) -
queueSectionsWithNewNeighbors
-
addNeighbors
-
initializeQueueForFullUpdate
private void initializeQueueForFullUpdate(Camera pCamera, Queue<SectionOcclusionGraph.Node> pNodeQueue) -
runUpdates
private void runUpdates(SectionOcclusionGraph.GraphStorage pGraphStorage, Vec3 pCameraPosition, Queue<SectionOcclusionGraph.Node> pNodeQueue, boolean pSmartCull, Consumer<SectionRenderDispatcher.RenderSection> pSections) -
isInViewDistance
-
getRelativeFrom
@Nullable private SectionRenderDispatcher.RenderSection getRelativeFrom(BlockPos pPos, SectionRenderDispatcher.RenderSection pSection, Direction pDirection) -
getNode
@Nullable protected SectionOcclusionGraph.Node getNode(SectionRenderDispatcher.RenderSection pSection)
-