GlSampler.java

com.mojang.blaze3d.opengl.GlSampler

信息

  • 全限定名:com.mojang.blaze3d.opengl.GlSampler
  • 类型:public class
  • 包:com.mojang.blaze3d.opengl
  • 源码路径:src/main/java/com/mojang/blaze3d/opengl/GlSampler.java
  • 起始行号:L12
  • 继承:GpuSampler
  • 职责:

    TODO

字段/常量

  • id

    • 类型: int
    • 修饰符: private final
    • 源码定位: L13
    • 说明:

      TODO

  • addressModeU

    • 类型: AddressMode
    • 修饰符: private final
    • 源码定位: L14
    • 说明:

      TODO

  • addressModeV

    • 类型: AddressMode
    • 修饰符: private final
    • 源码定位: L15
    • 说明:

      TODO

  • minFilter

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

      TODO

  • magFilter

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

      TODO

  • maxAnisotropy

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

      TODO

  • maxLod

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

      TODO

  • closed

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

      TODO

内部类/嵌套类型

构造器

public GlSampler(AddressMode addressModeU, AddressMode addressModeV, FilterMode minFilter, FilterMode magFilter, int maxAnisotropy, OptionalDouble maxLod) @ L22

  • 构造器名:GlSampler
  • 源码定位:L22
  • 修饰符:public

参数:

  • addressModeU: AddressMode
  • addressModeV: AddressMode
  • minFilter: FilterMode
  • magFilter: FilterMode
  • maxAnisotropy: int
  • maxLod: OptionalDouble

说明:

TODO

方法

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

public int getId() @ L57

  • 方法名:getId
  • 源码定位:L57
  • 返回类型:int
  • 修饰符:public

参数:

说明:

TODO

public AddressMode getAddressModeU() @ L61

  • 方法名:getAddressModeU
  • 源码定位:L61
  • 返回类型:AddressMode
  • 修饰符:public

参数:

说明:

TODO

public AddressMode getAddressModeV() @ L66

  • 方法名:getAddressModeV
  • 源码定位:L66
  • 返回类型:AddressMode
  • 修饰符:public

参数:

说明:

TODO

public FilterMode getMinFilter() @ L71

  • 方法名:getMinFilter
  • 源码定位:L71
  • 返回类型:FilterMode
  • 修饰符:public

参数:

说明:

TODO

public FilterMode getMagFilter() @ L76

  • 方法名:getMagFilter
  • 源码定位:L76
  • 返回类型:FilterMode
  • 修饰符:public

参数:

说明:

TODO

public int getMaxAnisotropy() @ L81

  • 方法名:getMaxAnisotropy
  • 源码定位:L81
  • 返回类型:int
  • 修饰符:public

参数:

说明:

TODO

public OptionalDouble getMaxLod() @ L86

  • 方法名:getMaxLod
  • 源码定位:L86
  • 返回类型:OptionalDouble
  • 修饰符:public

参数:

说明:

TODO

public void close() @ L91

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

参数:

说明:

TODO

public boolean isClosed() @ L99

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

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class GlSampler extends GpuSampler {
    private final int id;
    private final AddressMode addressModeU;
    private final AddressMode addressModeV;
    private final FilterMode minFilter;
    private final FilterMode magFilter;
    private final int maxAnisotropy;
    private final OptionalDouble maxLod;
    private boolean closed;
 
    public GlSampler(AddressMode addressModeU, AddressMode addressModeV, FilterMode minFilter, FilterMode magFilter, int maxAnisotropy, OptionalDouble maxLod) {
        this.addressModeU = addressModeU;
        this.addressModeV = addressModeV;
        this.minFilter = minFilter;
        this.magFilter = magFilter;
        this.maxAnisotropy = maxAnisotropy;
        this.maxLod = maxLod;
        this.id = GL33C.glGenSamplers();
        GL33C.glSamplerParameteri(this.id, 10242, GlConst.toGl(addressModeU));
        GL33C.glSamplerParameteri(this.id, 10243, GlConst.toGl(addressModeV));
        if (maxAnisotropy > 1) {
            GL33C.glSamplerParameterf(this.id, 34046, maxAnisotropy);
        }
 
        switch (minFilter) {
            case NEAREST:
                GL33C.glSamplerParameteri(this.id, 10241, 9986);
                break;
            case LINEAR:
                GL33C.glSamplerParameteri(this.id, 10241, 9987);
        }
 
        switch (magFilter) {
            case NEAREST:
                GL33C.glSamplerParameteri(this.id, 10240, 9728);
                break;
            case LINEAR:
                GL33C.glSamplerParameteri(this.id, 10240, 9729);
        }
 
        if (maxLod.isPresent()) {
            GL33C.glSamplerParameterf(this.id, 33083, (float)maxLod.getAsDouble());
        }
    }
 
    public int getId() {
        return this.id;
    }
 
    @Override
    public AddressMode getAddressModeU() {
        return this.addressModeU;
    }
 
    @Override
    public AddressMode getAddressModeV() {
        return this.addressModeV;
    }
 
    @Override
    public FilterMode getMinFilter() {
        return this.minFilter;
    }
 
    @Override
    public FilterMode getMagFilter() {
        return this.magFilter;
    }
 
    @Override
    public int getMaxAnisotropy() {
        return this.maxAnisotropy;
    }
 
    @Override
    public OptionalDouble getMaxLod() {
        return this.maxLod;
    }
 
    @Override
    public void close() {
        if (!this.closed) {
            this.closed = true;
            GL33C.glDeleteSamplers(this.id);
        }
    }
 
    public boolean isClosed() {
        return this.closed;
    }
}

引用的其他类

  • GlConst

    • 引用位置: 方法调用
    • 关联成员: GlConst.toGl()
  • AddressMode

    • 引用位置: 参数/字段/返回值
  • FilterMode

    • 引用位置: 参数/字段/返回值
  • GpuSampler

    • 引用位置: 继承