UniformValue.java

net.minecraft.client.renderer.UniformValue

信息

  • 全限定名:net.minecraft.client.renderer.UniformValue
  • 类型:public interface
  • 包:net.minecraft.client.renderer
  • 源码路径:src/main/java/net/minecraft/client/renderer/UniformValue.java
  • 起始行号:L18
  • 职责:

    TODO

字段/常量

  • CODEC
    • 类型: Codec<UniformValue>
    • 修饰符: package-private
    • 源码定位: L19
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.renderer.UniformValue.FloatUniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L28
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.IVec3Uniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L48
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.IntUniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L69
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.Matrix4x4Uniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L89
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.Type

    • 类型: enum
    • 修饰符: public static
    • 源码定位: L110
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.Vec2Uniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L135
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.Vec3Uniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L155
    • 说明:

      TODO

  • net.minecraft.client.renderer.UniformValue.Vec4Uniform

    • 类型: record
    • 修饰符: public
    • 源码定位: L175
    • 说明:

      TODO

构造器

方法

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

void writeTo(Std140Builder builder) @ L21

  • 方法名:writeTo
  • 源码定位:L21
  • 返回类型:void
  • 修饰符:package-private

参数:

  • builder: Std140Builder

说明:

TODO

void addSize(Std140SizeCalculator calculator) @ L23

  • 方法名:addSize
  • 源码定位:L23
  • 返回类型:void
  • 修饰符:package-private

参数:

  • calculator: Std140SizeCalculator

说明:

TODO

UniformValue.Type type() @ L25

  • 方法名:type
  • 源码定位:L25
  • 返回类型:UniformValue.Type
  • 修饰符:package-private

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public interface UniformValue {
    Codec<UniformValue> CODEC = UniformValue.Type.CODEC.dispatch(UniformValue::type, t -> t.valueCodec);
 
    void writeTo(Std140Builder builder);
 
    void addSize(Std140SizeCalculator calculator);
 
    UniformValue.Type type();
 
    @OnlyIn(Dist.CLIENT)
    public record FloatUniform(float value) implements UniformValue {
        public static final Codec<UniformValue.FloatUniform> CODEC = Codec.FLOAT.xmap(UniformValue.FloatUniform::new, UniformValue.FloatUniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putFloat(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putFloat();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.FLOAT;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record IVec3Uniform(Vector3ic value) implements UniformValue {
        public static final Codec<UniformValue.IVec3Uniform> CODEC = ExtraCodecs.VECTOR3I
            .xmap(UniformValue.IVec3Uniform::new, UniformValue.IVec3Uniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putIVec3(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putIVec3();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.IVEC3;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record IntUniform(int value) implements UniformValue {
        public static final Codec<UniformValue.IntUniform> CODEC = Codec.INT.xmap(UniformValue.IntUniform::new, UniformValue.IntUniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putInt(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putInt();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.INT;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record Matrix4x4Uniform(Matrix4fc value) implements UniformValue {
        public static final Codec<UniformValue.Matrix4x4Uniform> CODEC = ExtraCodecs.MATRIX4F
            .xmap(UniformValue.Matrix4x4Uniform::new, UniformValue.Matrix4x4Uniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putMat4f(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putMat4f();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.MATRIX4X4;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public static enum Type implements StringRepresentable {
        INT("int", UniformValue.IntUniform.CODEC),
        IVEC3("ivec3", UniformValue.IVec3Uniform.CODEC),
        FLOAT("float", UniformValue.FloatUniform.CODEC),
        VEC2("vec2", UniformValue.Vec2Uniform.CODEC),
        VEC3("vec3", UniformValue.Vec3Uniform.CODEC),
        VEC4("vec4", UniformValue.Vec4Uniform.CODEC),
        MATRIX4X4("matrix4x4", UniformValue.Matrix4x4Uniform.CODEC);
 
        public static final Codec<UniformValue.Type> CODEC = StringRepresentable.fromEnum(UniformValue.Type::values);
        private final String name;
        private final MapCodec<? extends UniformValue> valueCodec;
 
        private Type(String name, Codec<? extends UniformValue> valueCodec) {
            this.name = name;
            this.valueCodec = valueCodec.fieldOf("value");
        }
 
        @Override
        public String getSerializedName() {
            return this.name;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record Vec2Uniform(Vector2fc value) implements UniformValue {
        public static final Codec<UniformValue.Vec2Uniform> CODEC = ExtraCodecs.VECTOR2F.xmap(UniformValue.Vec2Uniform::new, UniformValue.Vec2Uniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putVec2(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putVec2();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.VEC2;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record Vec3Uniform(Vector3fc value) implements UniformValue {
        public static final Codec<UniformValue.Vec3Uniform> CODEC = ExtraCodecs.VECTOR3F.xmap(UniformValue.Vec3Uniform::new, UniformValue.Vec3Uniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putVec3(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putVec3();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.VEC3;
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record Vec4Uniform(Vector4fc value) implements UniformValue {
        public static final Codec<UniformValue.Vec4Uniform> CODEC = ExtraCodecs.VECTOR4F.xmap(UniformValue.Vec4Uniform::new, UniformValue.Vec4Uniform::value);
 
        @Override
        public void writeTo(Std140Builder builder) {
            builder.putVec4(this.value);
        }
 
        @Override
        public void addSize(Std140SizeCalculator calculator) {
            calculator.putVec4();
        }
 
        @Override
        public UniformValue.Type type() {
            return UniformValue.Type.VEC4;
        }
    }
}

引用的其他类