GlobalSettingsUniform.java
net.minecraft.client.renderer.GlobalSettingsUniform
信息
- 全限定名:net.minecraft.client.renderer.GlobalSettingsUniform
- 类型:public class
- 包:net.minecraft.client.renderer
- 源码路径:src/main/java/net/minecraft/client/renderer/GlobalSettingsUniform.java
- 起始行号:L16
- 实现:AutoCloseable
- 职责:
TODO
字段/常量
-
UBO_SIZE- 类型:
int - 修饰符:
public static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
buffer- 类型:
GpuBuffer - 修饰符:
private final - 源码定位:
L18 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void update(int width, int height, double glintAlpha, long gameTime, DeltaTracker deltaTracker, int menuBlurRadius, Vec3 cameraPos, boolean useRgss) @ L20
- 方法名:update
- 源码定位:L20
- 返回类型:void
- 修饰符:public
参数:
- width: int
- height: int
- glintAlpha: double
- gameTime: long
- deltaTracker: DeltaTracker
- menuBlurRadius: int
- cameraPos: Vec3
- useRgss: boolean
说明:
TODO
public void close() @ L40
- 方法名:close
- 源码定位:L40
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class GlobalSettingsUniform implements AutoCloseable {
public static final int UBO_SIZE = new Std140SizeCalculator().putIVec3().putVec3().putVec2().putFloat().putFloat().putInt().putInt().get();
private final GpuBuffer buffer = RenderSystem.getDevice().createBuffer(() -> "Global Settings UBO", 136, UBO_SIZE);
public void update(int width, int height, double glintAlpha, long gameTime, DeltaTracker deltaTracker, int menuBlurRadius, Vec3 cameraPos, boolean useRgss) {
try (MemoryStack stack = MemoryStack.stackPush()) {
int cameraX = Mth.floor(cameraPos.x);
int cameraY = Mth.floor(cameraPos.y);
int cameraZ = Mth.floor(cameraPos.z);
ByteBuffer data = Std140Builder.onStack(stack, UBO_SIZE)
.putIVec3(cameraX, cameraY, cameraZ)
.putVec3((float)(cameraX - cameraPos.x), (float)(cameraY - cameraPos.y), (float)(cameraZ - cameraPos.z))
.putVec2(width, height)
.putFloat((float)glintAlpha)
.putFloat(((float)(gameTime % 24000L) + deltaTracker.getGameTimeDeltaPartialTick(false)) / 24000.0F)
.putInt(menuBlurRadius)
.putInt(useRgss ? 1 : 0)
.get();
RenderSystem.getDevice().createCommandEncoder().writeToBuffer(this.buffer.slice(), data);
}
RenderSystem.setGlobalSettingsUniform(this.buffer);
}
@Override
public void close() {
this.buffer.close();
}
}引用的其他类
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Std140Builder.onStack()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
Std140SizeCalculator()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RenderSystem.getDevice(), RenderSystem.setGlobalSettingsUniform()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.floor()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: