ReloadableTexture.java
net.minecraft.client.renderer.texture.ReloadableTexture
信息
- 全限定名:net.minecraft.client.renderer.texture.ReloadableTexture
- 类型:public abstract class
- 包:net.minecraft.client.renderer.texture
- 源码路径:src/main/java/net/minecraft/client/renderer/texture/ReloadableTexture.java
- 起始行号:L16
- 继承:AbstractTexture
- 职责:
TODO
字段/常量
resourceId- 类型:
Identifier - 修饰符:
private final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ReloadableTexture(Identifier resourceId) @ L19
- 构造器名:ReloadableTexture
- 源码定位:L19
- 修饰符:public
参数:
- resourceId: Identifier
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Identifier resourceId() @ L23
- 方法名:resourceId
- 源码定位:L23
- 返回类型:Identifier
- 修饰符:public
参数:
- 无
说明:
TODO
public void apply(TextureContents contents) @ L27
- 方法名:apply
- 源码定位:L27
- 返回类型:void
- 修饰符:public
参数:
- contents: TextureContents
说明:
TODO
protected void doLoad(NativeImage image) @ L39
- 方法名:doLoad
- 源码定位:L39
- 返回类型:void
- 修饰符:protected
参数:
- image: NativeImage
说明:
TODO
public abstract TextureContents loadContents(ResourceManager resourceManager) @ L47
- 方法名:loadContents
- 源码定位:L47
- 返回类型:TextureContents
- 修饰符:public abstract
参数:
- resourceManager: ResourceManager
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class ReloadableTexture extends AbstractTexture {
private final Identifier resourceId;
public ReloadableTexture(Identifier resourceId) {
this.resourceId = resourceId;
}
public Identifier resourceId() {
return this.resourceId;
}
public void apply(TextureContents contents) {
boolean clamp = contents.clamp();
boolean blur = contents.blur();
AddressMode addressMode = clamp ? AddressMode.CLAMP_TO_EDGE : AddressMode.REPEAT;
FilterMode minMag = blur ? FilterMode.LINEAR : FilterMode.NEAREST;
this.sampler = RenderSystem.getSamplerCache().getSampler(addressMode, addressMode, minMag, minMag, false);
try (NativeImage image = contents.image()) {
this.doLoad(image);
}
}
protected void doLoad(NativeImage image) {
GpuDevice device = RenderSystem.getDevice();
this.close();
this.texture = device.createTexture(this.resourceId::toString, 5, TextureFormat.RGBA8, image.getWidth(), image.getHeight(), 1, 1);
this.textureView = device.createTextureView(this.texture);
device.createCommandEncoder().writeToTexture(this.texture, image);
}
public abstract TextureContents loadContents(ResourceManager resourceManager) throws IOException;
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RenderSystem.getDevice(), RenderSystem.getSamplerCache()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置: