FeatureRenderDispatcher.java

net.minecraft.client.renderer.feature.FeatureRenderDispatcher

信息

  • 全限定名:net.minecraft.client.renderer.feature.FeatureRenderDispatcher
  • 类型:public class
  • 包:net.minecraft.client.renderer.feature
  • 源码路径:src/main/java/net/minecraft/client/renderer/feature/FeatureRenderDispatcher.java
  • 起始行号:L15
  • 实现:AutoCloseable
  • 职责:

    TODO

字段/常量

  • submitNodeStorage

    • 类型: SubmitNodeStorage
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

  • modelManager

    • 类型: ModelManager
    • 修饰符: private final
    • 源码定位: L17
    • 说明:

      TODO

  • bufferSource

    • 类型: MultiBufferSource.BufferSource
    • 修饰符: private final
    • 源码定位: L18
    • 说明:

      TODO

  • atlasManager

    • 类型: AtlasManager
    • 修饰符: private final
    • 源码定位: L19
    • 说明:

      TODO

  • outlineBufferSource

    • 类型: OutlineBufferSource
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • crumblingBufferSource

    • 类型: MultiBufferSource.BufferSource
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

  • font

    • 类型: Font
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

  • gameRenderState

    • 类型: GameRenderState
    • 修饰符: private final
    • 源码定位: L23
    • 说明:

      TODO

  • shadowFeatureRenderer

    • 类型: ShadowFeatureRenderer
    • 修饰符: private final
    • 源码定位: L24
    • 说明:

      TODO

  • flameFeatureRenderer

    • 类型: FlameFeatureRenderer
    • 修饰符: private final
    • 源码定位: L25
    • 说明:

      TODO

  • modelFeatureRenderer

    • 类型: ModelFeatureRenderer
    • 修饰符: private final
    • 源码定位: L26
    • 说明:

      TODO

  • modelPartFeatureRenderer

    • 类型: ModelPartFeatureRenderer
    • 修饰符: private final
    • 源码定位: L27
    • 说明:

      TODO

  • nameTagFeatureRenderer

    • 类型: NameTagFeatureRenderer
    • 修饰符: private final
    • 源码定位: L28
    • 说明:

      TODO

  • textFeatureRenderer

    • 类型: TextFeatureRenderer
    • 修饰符: private final
    • 源码定位: L29
    • 说明:

      TODO

  • leashFeatureRenderer

    • 类型: LeashFeatureRenderer
    • 修饰符: private final
    • 源码定位: L30
    • 说明:

      TODO

  • itemFeatureRenderer

    • 类型: ItemFeatureRenderer
    • 修饰符: private final
    • 源码定位: L31
    • 说明:

      TODO

  • customFeatureRenderer

    • 类型: CustomFeatureRenderer
    • 修饰符: private final
    • 源码定位: L32
    • 说明:

      TODO

  • blockFeatureRenderer

    • 类型: BlockFeatureRenderer
    • 修饰符: private final
    • 源码定位: L33
    • 说明:

      TODO

  • particleFeatureRenderer

    • 类型: ParticleFeatureRenderer
    • 修饰符: private final
    • 源码定位: L34
    • 说明:

      TODO

内部类/嵌套类型

构造器

public FeatureRenderDispatcher(SubmitNodeStorage submitNodeStorage, ModelManager modelManager, MultiBufferSource.BufferSource bufferSource, AtlasManager atlasManager, OutlineBufferSource outlineBufferSource, MultiBufferSource.BufferSource crumblingBufferSource, Font font, GameRenderState gameRenderState) @ L36

  • 构造器名:FeatureRenderDispatcher
  • 源码定位:L36
  • 修饰符:public

参数:

  • submitNodeStorage: SubmitNodeStorage
  • modelManager: ModelManager
  • bufferSource: MultiBufferSource.BufferSource
  • atlasManager: AtlasManager
  • outlineBufferSource: OutlineBufferSource
  • crumblingBufferSource: MultiBufferSource.BufferSource
  • font: Font
  • gameRenderState: GameRenderState

说明:

TODO

方法

下面的方法块按源码顺序生成。

public void renderSolidFeatures() @ L56

  • 方法名:renderSolidFeatures
  • 源码定位:L56
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void renderTranslucentFeatures() @ L72

  • 方法名:renderTranslucentFeatures
  • 源码定位:L72
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void renderTranslucentParticles() @ L93

  • 方法名:renderTranslucentParticles
  • 源码定位:L93
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void clearSubmitNodes() @ L99

  • 方法名:clearSubmitNodes
  • 源码定位:L99
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void renderAllFeatures() @ L103

  • 方法名:renderAllFeatures
  • 源码定位:L103
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void endFrame() @ L110

  • 方法名:endFrame
  • 源码定位:L110
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public SubmitNodeStorage getSubmitNodeStorage() @ L114

  • 方法名:getSubmitNodeStorage
  • 源码定位:L114
  • 返回类型:SubmitNodeStorage
  • 修饰符:public

参数:

说明:

TODO

public void close() @ L118

  • 方法名:close
  • 源码定位:L118
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class FeatureRenderDispatcher implements AutoCloseable {
    private final SubmitNodeStorage submitNodeStorage;
    private final ModelManager modelManager;
    private final MultiBufferSource.BufferSource bufferSource;
    private final AtlasManager atlasManager;
    private final OutlineBufferSource outlineBufferSource;
    private final MultiBufferSource.BufferSource crumblingBufferSource;
    private final Font font;
    private final GameRenderState gameRenderState;
    private final ShadowFeatureRenderer shadowFeatureRenderer = new ShadowFeatureRenderer();
    private final FlameFeatureRenderer flameFeatureRenderer = new FlameFeatureRenderer();
    private final ModelFeatureRenderer modelFeatureRenderer = new ModelFeatureRenderer();
    private final ModelPartFeatureRenderer modelPartFeatureRenderer = new ModelPartFeatureRenderer();
    private final NameTagFeatureRenderer nameTagFeatureRenderer = new NameTagFeatureRenderer();
    private final TextFeatureRenderer textFeatureRenderer = new TextFeatureRenderer();
    private final LeashFeatureRenderer leashFeatureRenderer = new LeashFeatureRenderer();
    private final ItemFeatureRenderer itemFeatureRenderer = new ItemFeatureRenderer();
    private final CustomFeatureRenderer customFeatureRenderer = new CustomFeatureRenderer();
    private final BlockFeatureRenderer blockFeatureRenderer = new BlockFeatureRenderer();
    private final ParticleFeatureRenderer particleFeatureRenderer = new ParticleFeatureRenderer();
 
    public FeatureRenderDispatcher(
        SubmitNodeStorage submitNodeStorage,
        ModelManager modelManager,
        MultiBufferSource.BufferSource bufferSource,
        AtlasManager atlasManager,
        OutlineBufferSource outlineBufferSource,
        MultiBufferSource.BufferSource crumblingBufferSource,
        Font font,
        GameRenderState gameRenderState
    ) {
        this.submitNodeStorage = submitNodeStorage;
        this.modelManager = modelManager;
        this.bufferSource = bufferSource;
        this.atlasManager = atlasManager;
        this.outlineBufferSource = outlineBufferSource;
        this.crumblingBufferSource = crumblingBufferSource;
        this.font = font;
        this.gameRenderState = gameRenderState;
    }
 
    public void renderSolidFeatures() {
        for (SubmitNodeCollection collection : this.submitNodeStorage.getSubmitsPerOrder().values()) {
            this.modelFeatureRenderer.renderSolid(collection, this.bufferSource, this.outlineBufferSource, this.crumblingBufferSource);
            this.modelPartFeatureRenderer.renderSolid(collection, this.bufferSource, this.outlineBufferSource, this.crumblingBufferSource);
            this.flameFeatureRenderer.renderSolid(collection, this.bufferSource, this.atlasManager);
            this.leashFeatureRenderer.renderSolid(collection, this.bufferSource);
            this.itemFeatureRenderer.renderSolid(collection, this.bufferSource, this.outlineBufferSource);
            this.blockFeatureRenderer
                .renderSolid(
                    collection, this.bufferSource, this.modelManager.getBlockStateModelSet(), this.outlineBufferSource, this.gameRenderState.optionsRenderState
                );
            this.customFeatureRenderer.renderSolid(collection, this.bufferSource);
            this.particleFeatureRenderer.renderSolid(collection);
        }
    }
 
    public void renderTranslucentFeatures() {
        for (SubmitNodeCollection collection : this.submitNodeStorage.getSubmitsPerOrder().values()) {
            this.shadowFeatureRenderer.renderTranslucent(collection, this.bufferSource);
            this.modelFeatureRenderer.renderTranslucent(collection, this.bufferSource, this.outlineBufferSource, this.crumblingBufferSource);
            this.modelPartFeatureRenderer.renderTranslucent(collection, this.bufferSource, this.outlineBufferSource, this.crumblingBufferSource);
            this.nameTagFeatureRenderer.renderTranslucent(collection, this.bufferSource, this.font);
            this.textFeatureRenderer.renderTranslucent(collection, this.bufferSource);
            this.itemFeatureRenderer.renderTranslucent(collection, this.bufferSource, this.outlineBufferSource);
            this.blockFeatureRenderer
                .renderTranslucent(
                    collection,
                    this.bufferSource,
                    this.modelManager.getBlockStateModelSet(),
                    this.outlineBufferSource,
                    this.crumblingBufferSource,
                    this.gameRenderState.optionsRenderState
                );
            this.customFeatureRenderer.renderTranslucent(collection, this.bufferSource);
        }
    }
 
    public void renderTranslucentParticles() {
        for (SubmitNodeCollection collection : this.submitNodeStorage.getSubmitsPerOrder().values()) {
            this.particleFeatureRenderer.renderTranslucent(collection);
        }
    }
 
    public void clearSubmitNodes() {
        this.submitNodeStorage.clear();
    }
 
    public void renderAllFeatures() {
        this.renderSolidFeatures();
        this.renderTranslucentFeatures();
        this.renderTranslucentParticles();
        this.clearSubmitNodes();
    }
 
    public void endFrame() {
        this.particleFeatureRenderer.endFrame();
    }
 
    public SubmitNodeStorage getSubmitNodeStorage() {
        return this.submitNodeStorage;
    }
 
    @Override
    public void close() {
        this.particleFeatureRenderer.close();
    }
}

引用的其他类