ClientMetricsSamplersProvider.java
net.minecraft.client.profiling.ClientMetricsSamplersProvider
信息
- 全限定名:net.minecraft.client.profiling.ClientMetricsSamplersProvider
- 类型:public class
- 包:net.minecraft.client.profiling
- 源码路径:src/main/java/net/minecraft/client/profiling/ClientMetricsSamplersProvider.java
- 起始行号:L20
- 实现:MetricsSamplerProvider
- 职责:
TODO
字段/常量
-
levelRenderer- 类型:
LevelRenderer - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
samplers- 类型:
Set<MetricSampler> - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
samplerFactory- 类型:
ProfilerSamplerAdapter - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ClientMetricsSamplersProvider(LongSupplier wallTimeSource, LevelRenderer levelRenderer) @ L25
- 构造器名:ClientMetricsSamplersProvider
- 源码定位:L25
- 修饰符:public
参数:
- wallTimeSource: LongSupplier
- levelRenderer: LevelRenderer
说明:
TODO
方法
下面的方法块按源码顺序生成。
private void registerStaticSamplers() @ L31
- 方法名:registerStaticSamplers
- 源码定位:L31
- 返回类型:void
- 修饰符:private
参数:
- 无
说明:
TODO
public Set<MetricSampler> samplers(Supplier<ProfileCollector> singleTickProfiler) @ L55
- 方法名:samplers
- 源码定位:L55
- 返回类型:Set
- 修饰符:public
参数:
- singleTickProfiler: Supplier
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ClientMetricsSamplersProvider implements MetricsSamplerProvider {
private final LevelRenderer levelRenderer;
private final Set<MetricSampler> samplers = new ObjectOpenHashSet<>();
private final ProfilerSamplerAdapter samplerFactory = new ProfilerSamplerAdapter();
public ClientMetricsSamplersProvider(LongSupplier wallTimeSource, LevelRenderer levelRenderer) {
this.levelRenderer = levelRenderer;
this.samplers.add(ServerMetricsSamplersProvider.tickTimeSampler(wallTimeSource));
this.registerStaticSamplers();
}
private void registerStaticSamplers() {
this.samplers.addAll(ServerMetricsSamplersProvider.runtimeIndependentSamplers());
this.samplers.add(MetricSampler.create("totalChunks", MetricCategory.CHUNK_RENDERING, this.levelRenderer, LevelRenderer::getTotalSections));
this.samplers.add(MetricSampler.create("renderedChunks", MetricCategory.CHUNK_RENDERING, this.levelRenderer, LevelRenderer::countRenderedSections));
this.samplers.add(MetricSampler.create("lastViewDistance", MetricCategory.CHUNK_RENDERING, this.levelRenderer, LevelRenderer::getLastViewDistance));
SectionRenderDispatcher sectionRenderDispatcher = this.levelRenderer.getSectionRenderDispatcher();
if (sectionRenderDispatcher != null) {
this.samplers
.add(
MetricSampler.create(
"freeBufferCount", MetricCategory.CHUNK_RENDERING_DISPATCHING, sectionRenderDispatcher, SectionRenderDispatcher::getFreeBufferCount
)
);
this.samplers
.add(
MetricSampler.create(
"compileQueueSize", MetricCategory.CHUNK_RENDERING_DISPATCHING, sectionRenderDispatcher, SectionRenderDispatcher::getCompileQueueSize
)
);
}
this.samplers.add(MetricSampler.create("gpuUtilization", MetricCategory.GPU, Minecraft.getInstance(), Minecraft::getGpuUtilization));
}
@Override
public Set<MetricSampler> samplers(Supplier<ProfileCollector> singleTickProfiler) {
this.samplers.addAll(this.samplerFactory.newSamplersFoundInProfiler(singleTickProfiler));
return this.samplers;
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
Minecraft.getInstance()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
MetricSampler.create()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
ProfilerSamplerAdapter()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ServerMetricsSamplersProvider.runtimeIndependentSamplers(), ServerMetricsSamplersProvider.tickTimeSampler()
- 引用位置: