Class ShaderProgram

java.lang.Object
net.minecraft.client.gl.ShaderProgram
All Implemented Interfaces:
AutoCloseable

@Environment(CLIENT) public class ShaderProgram extends Object implements AutoCloseable
Represents a shader program. Also known as a program object that can be created with glCreateProgram.

Warning: This class is referred to as a shader in strings. However, this does NOT represent a shader object that can be created with glCreateShader. CompiledShader is what represents a shader object.

See Also:
Mappings:
Namespace Name
named net/minecraft/client/gl/ShaderProgram
intermediary net/minecraft/class_5944
official fjh
  • Field Details Link icon

    • LOGGER Link icon

      private static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      named LOGGER Lnet/minecraft/client/gl/ShaderProgram;LOGGER:Lorg/slf4j/Logger;
      intermediary field_58041 Lnet/minecraft/class_5944;field_58041:Lorg/slf4j/Logger;
      official r Lfjh;r:Lorg/slf4j/Logger;
    • PREDEFINED_UNIFORMS Link icon

      public static Set<String> PREDEFINED_UNIFORMS
      Mappings:
      Namespace Name Mixin selector
      named PREDEFINED_UNIFORMS Lnet/minecraft/client/gl/ShaderProgram;PREDEFINED_UNIFORMS:Ljava/util/Set;
      intermediary field_57863 Lnet/minecraft/class_5944;field_57863:Ljava/util/Set;
      official a Lfjh;a:Ljava/util/Set;
    • INVALID Link icon

      public static ShaderProgram INVALID
      Mappings:
      Namespace Name Mixin selector
      named INVALID Lnet/minecraft/client/gl/ShaderProgram;INVALID:Lnet/minecraft/client/gl/ShaderProgram;
      intermediary field_57864 Lnet/minecraft/class_5944;field_57864:Lnet/minecraft/class_5944;
      official b Lfjh;b:Lfjh;
    • DEFAULT_UNIFORM Link icon

      private static final Uniform DEFAULT_UNIFORM
      Mappings:
      Namespace Name Mixin selector
      named DEFAULT_UNIFORM Lnet/minecraft/client/gl/ShaderProgram;DEFAULT_UNIFORM:Lnet/minecraft/client/gl/Uniform;
      intermediary field_29484 Lnet/minecraft/class_5944;field_29484:Lnet/minecraft/class_278;
      official s Lfjh;s:Lfja;
    • samplers Link icon

      private final List<String> samplers
      Mappings:
      Namespace Name Mixin selector
      named samplers Lnet/minecraft/client/gl/ShaderProgram;samplers:Ljava/util/List;
      intermediary field_53838 Lnet/minecraft/class_5944;field_53838:Ljava/util/List;
      official t Lfjh;t:Ljava/util/List;
    • samplerTextures Link icon

      private final Object2ObjectMap<String,GpuTexture> samplerTextures
      Mappings:
      Namespace Name Mixin selector
      named samplerTextures Lnet/minecraft/client/gl/ShaderProgram;samplerTextures:Lit/unimi/dsi/fastutil/objects/Object2ObjectMap;
      intermediary field_53839 Lnet/minecraft/class_5944;field_53839:Lit/unimi/dsi/fastutil/objects/Object2ObjectMap;
      official u Lfjh;u:Lit/unimi/dsi/fastutil/objects/Object2ObjectMap;
    • samplerLocations Link icon

      private final IntList samplerLocations
      Mappings:
      Namespace Name Mixin selector
      named samplerLocations Lnet/minecraft/client/gl/ShaderProgram;samplerLocations:Lit/unimi/dsi/fastutil/ints/IntList;
      intermediary field_53840 Lnet/minecraft/class_5944;field_53840:Lit/unimi/dsi/fastutil/ints/IntList;
      official v Lfjh;v:Lit/unimi/dsi/fastutil/ints/IntList;
    • uniforms Link icon

      private final List<GlUniform> uniforms
      Mappings:
      Namespace Name Mixin selector
      named uniforms Lnet/minecraft/client/gl/ShaderProgram;uniforms:Ljava/util/List;
      intermediary field_29490 Lnet/minecraft/class_5944;field_29490:Ljava/util/List;
      official w Lfjh;w:Ljava/util/List;
    • uniformsByName Link icon

      private final Map<String,GlUniform> uniformsByName
      Mappings:
      Namespace Name Mixin selector
      named uniformsByName Lnet/minecraft/client/gl/ShaderProgram;uniformsByName:Ljava/util/Map;
      intermediary field_53841 Lnet/minecraft/class_5944;field_53841:Ljava/util/Map;
      official x Lfjh;x:Ljava/util/Map;
    • glRef Link icon

      private final int glRef
      Mappings:
      Namespace Name Mixin selector
      named glRef Lnet/minecraft/client/gl/ShaderProgram;glRef:I
      intermediary field_29493 Lnet/minecraft/class_5944;field_29493:I
      official y Lfjh;y:I
    • debugLabel Link icon

      private final String debugLabel
      Mappings:
      Namespace Name Mixin selector
      named debugLabel Lnet/minecraft/client/gl/ShaderProgram;debugLabel:Ljava/lang/String;
      intermediary field_57865 Lnet/minecraft/class_5944;field_57865:Ljava/lang/String;
      official z Lfjh;z:Ljava/lang/String;
    • modelViewMat Link icon

      @Nullable public @Nullable GlUniform modelViewMat
      Mappings:
      Namespace Name Mixin selector
      named modelViewMat Lnet/minecraft/client/gl/ShaderProgram;modelViewMat:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29470 Lnet/minecraft/class_5944;field_29470:Lnet/minecraft/class_284;
      official c Lfjh;c:Lfjm;
    • projectionMat Link icon

      @Nullable public @Nullable GlUniform projectionMat
      Mappings:
      Namespace Name Mixin selector
      named projectionMat Lnet/minecraft/client/gl/ShaderProgram;projectionMat:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29471 Lnet/minecraft/class_5944;field_29471:Lnet/minecraft/class_284;
      official d Lfjh;d:Lfjm;
    • textureMat Link icon

      @Nullable public @Nullable GlUniform textureMat
      Mappings:
      Namespace Name Mixin selector
      named textureMat Lnet/minecraft/client/gl/ShaderProgram;textureMat:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29472 Lnet/minecraft/class_5944;field_29472:Lnet/minecraft/class_284;
      official e Lfjh;e:Lfjm;
    • screenSize Link icon

      @Nullable public @Nullable GlUniform screenSize
      Mappings:
      Namespace Name Mixin selector
      named screenSize Lnet/minecraft/client/gl/ShaderProgram;screenSize:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29473 Lnet/minecraft/class_5944;field_29473:Lnet/minecraft/class_284;
      official f Lfjh;f:Lfjm;
    • colorModulator Link icon

      @Nullable public @Nullable GlUniform colorModulator
      Mappings:
      Namespace Name Mixin selector
      named colorModulator Lnet/minecraft/client/gl/ShaderProgram;colorModulator:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29474 Lnet/minecraft/class_5944;field_29474:Lnet/minecraft/class_284;
      official g Lfjh;g:Lfjm;
    • light0Direction Link icon

      @Nullable public @Nullable GlUniform light0Direction
      Mappings:
      Namespace Name Mixin selector
      named light0Direction Lnet/minecraft/client/gl/ShaderProgram;light0Direction:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29475 Lnet/minecraft/class_5944;field_29475:Lnet/minecraft/class_284;
      official h Lfjh;h:Lfjm;
    • light1Direction Link icon

      @Nullable public @Nullable GlUniform light1Direction
      Mappings:
      Namespace Name Mixin selector
      named light1Direction Lnet/minecraft/client/gl/ShaderProgram;light1Direction:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29476 Lnet/minecraft/class_5944;field_29476:Lnet/minecraft/class_284;
      official i Lfjh;i:Lfjm;
    • glintAlpha Link icon

      @Nullable public @Nullable GlUniform glintAlpha
      Mappings:
      Namespace Name Mixin selector
      named glintAlpha Lnet/minecraft/client/gl/ShaderProgram;glintAlpha:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_42231 Lnet/minecraft/class_5944;field_42231:Lnet/minecraft/class_284;
      official j Lfjh;j:Lfjm;
    • fogStart Link icon

      @Nullable public @Nullable GlUniform fogStart
      Mappings:
      Namespace Name Mixin selector
      named fogStart Lnet/minecraft/client/gl/ShaderProgram;fogStart:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29477 Lnet/minecraft/class_5944;field_29477:Lnet/minecraft/class_284;
      official k Lfjh;k:Lfjm;
    • fogEnd Link icon

      @Nullable public @Nullable GlUniform fogEnd
      Mappings:
      Namespace Name Mixin selector
      named fogEnd Lnet/minecraft/client/gl/ShaderProgram;fogEnd:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29478 Lnet/minecraft/class_5944;field_29478:Lnet/minecraft/class_284;
      official l Lfjh;l:Lfjm;
    • fogColor Link icon

      @Nullable public @Nullable GlUniform fogColor
      Mappings:
      Namespace Name Mixin selector
      named fogColor Lnet/minecraft/client/gl/ShaderProgram;fogColor:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29479 Lnet/minecraft/class_5944;field_29479:Lnet/minecraft/class_284;
      official m Lfjh;m:Lfjm;
    • fogShape Link icon

      @Nullable public @Nullable GlUniform fogShape
      Mappings:
      Namespace Name Mixin selector
      named fogShape Lnet/minecraft/client/gl/ShaderProgram;fogShape:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_36373 Lnet/minecraft/class_5944;field_36373:Lnet/minecraft/class_284;
      official n Lfjh;n:Lfjm;
    • lineWidth Link icon

      @Nullable public @Nullable GlUniform lineWidth
      Mappings:
      Namespace Name Mixin selector
      named lineWidth Lnet/minecraft/client/gl/ShaderProgram;lineWidth:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29480 Lnet/minecraft/class_5944;field_29480:Lnet/minecraft/class_284;
      official o Lfjh;o:Lfjm;
    • gameTime Link icon

      @Nullable public @Nullable GlUniform gameTime
      Mappings:
      Namespace Name Mixin selector
      named gameTime Lnet/minecraft/client/gl/ShaderProgram;gameTime:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_29481 Lnet/minecraft/class_5944;field_29481:Lnet/minecraft/class_284;
      official p Lfjh;p:Lfjm;
    • modelOffset Link icon

      @Nullable public @Nullable GlUniform modelOffset
      Mappings:
      Namespace Name Mixin selector
      named modelOffset Lnet/minecraft/client/gl/ShaderProgram;modelOffset:Lnet/minecraft/client/gl/GlUniform;
      intermediary field_53139 Lnet/minecraft/class_5944;field_53139:Lnet/minecraft/class_284;
      official q Lfjh;q:Lfjm;
  • Constructor Details Link icon

    • ShaderProgram Link icon

      private ShaderProgram(int glRef, String debugLabel)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/client/gl/ShaderProgram;<init>(ILjava/lang/String;)V
      intermediary <init> Lnet/minecraft/class_5944;<init>(ILjava/lang/String;)V
      official <init> Lfjh;<init>(ILjava/lang/String;)V
  • Method Details Link icon

    • create Link icon

      public static ShaderProgram create(CompiledShader vertexShader, CompiledShader fragmentShader, VertexFormat format, String name) throws ShaderLoader.LoadException
      Throws:
      ShaderLoader.LoadException
      Mappings:
      Namespace Name Mixin selector
      named create Lnet/minecraft/client/gl/ShaderProgram;create(Lnet/minecraft/client/gl/CompiledShader;Lnet/minecraft/client/gl/CompiledShader;Lcom/mojang/blaze3d/vertex/VertexFormat;Ljava/lang/String;)Lnet/minecraft/client/gl/ShaderProgram;
      intermediary method_62896 Lnet/minecraft/class_5944;method_62896(Lnet/minecraft/class_10141;Lnet/minecraft/class_10141;Lcom/mojang/blaze3d/vertex/VertexFormat;Ljava/lang/String;)Lnet/minecraft/class_5944;
      official a Lfjh;a(Lfjk;Lfjk;Lcom/mojang/blaze3d/vertex/VertexFormat;Ljava/lang/String;)Lfjh;
    • set Link icon

      public void set(List<RenderPipeline.UniformDescription> uniforms, List<String> samplers)
      Mappings:
      Namespace Name Mixin selector
      named set Lnet/minecraft/client/gl/ShaderProgram;set(Ljava/util/List;Ljava/util/List;)V
      intermediary method_62900 Lnet/minecraft/class_5944;method_62900(Ljava/util/List;Ljava/util/List;)V
      official a Lfjh;a(Ljava/util/List;Ljava/util/List;)V
    • createUniform Link icon

      private GlUniform createUniform(RenderPipeline.UniformDescription description)
      Mappings:
      Namespace Name Mixin selector
      named createUniform Lnet/minecraft/client/gl/ShaderProgram;createUniform(Lcom/mojang/blaze3d/pipeline/RenderPipeline$UniformDescription;)Lnet/minecraft/client/gl/GlUniform;
      intermediary method_67880 Lnet/minecraft/class_5944;method_67880(Lcom/mojang/blaze3d/pipeline/RenderPipeline$UniformDescription;)Lnet/minecraft/class_284;
      official a Lfjh;a(Lcom/mojang/blaze3d/pipeline/RenderPipeline$UniformDescription;)Lfjm;
    • close Link icon

      public void close()
      Specified by:
      close in interface AutoCloseable
    • unbind Link icon

      public void unbind()
      Mappings:
      Namespace Name Mixin selector
      named unbind Lnet/minecraft/client/gl/ShaderProgram;unbind()V
      intermediary method_34585 Lnet/minecraft/class_5944;method_34585()V
      official a Lfjh;a()V
    • getUniform Link icon

      @Nullable public @Nullable GlUniform getUniform(String name)
      Mappings:
      Namespace Name Mixin selector
      named getUniform Lnet/minecraft/client/gl/ShaderProgram;getUniform(Ljava/lang/String;)Lnet/minecraft/client/gl/GlUniform;
      intermediary method_34582 Lnet/minecraft/class_5944;method_34582(Ljava/lang/String;)Lnet/minecraft/class_284;
      official a Lfjh;a(Ljava/lang/String;)Lfjm;
    • getUniformOrDefault Link icon

      public Uniform getUniformOrDefault(String name)
      Mappings:
      Namespace Name Mixin selector
      named getUniformOrDefault Lnet/minecraft/client/gl/ShaderProgram;getUniformOrDefault(Ljava/lang/String;)Lnet/minecraft/client/gl/Uniform;
      intermediary method_35785 Lnet/minecraft/class_5944;method_35785(Ljava/lang/String;)Lnet/minecraft/class_278;
      official b Lfjh;b(Ljava/lang/String;)Lfja;
    • addSamplerTexture Link icon

      public void addSamplerTexture(String name, @Nullable @Nullable GpuTexture texture)
      Mappings:
      Namespace Name Mixin selector
      named addSamplerTexture Lnet/minecraft/client/gl/ShaderProgram;addSamplerTexture(Ljava/lang/String;Lcom/mojang/blaze3d/textures/GpuTexture;)V
      intermediary method_62899 Lnet/minecraft/class_5944;method_62899(Ljava/lang/String;Lcom/mojang/blaze3d/textures/GpuTexture;)V
      official a Lfjh;a(Ljava/lang/String;Lcom/mojang/blaze3d/textures/GpuTexture;)V
    • initializeUniforms Link icon

      public void initializeUniforms(VertexFormat.DrawMode drawMode, Matrix4f viewMatrix, Matrix4f projectionMatrix, float screenWidth, float screenHeight)
      Mappings:
      Namespace Name Mixin selector
      named initializeUniforms Lnet/minecraft/client/gl/ShaderProgram;initializeUniforms(Lcom/mojang/blaze3d/vertex/VertexFormat$DrawMode;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FF)V
      intermediary method_60897 Lnet/minecraft/class_5944;method_60897(Lcom/mojang/blaze3d/vertex/VertexFormat$class_5596;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FF)V
      official a Lfjh;a(Lcom/mojang/blaze3d/vertex/VertexFormat$b;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FF)V
    • getGlRef Link icon

      @VisibleForTesting public int getGlRef()
      Mappings:
      Namespace Name Mixin selector
      named getGlRef Lnet/minecraft/client/gl/ShaderProgram;getGlRef()I
      intermediary method_1270 Lnet/minecraft/class_5944;method_1270()I
      official b Lfjh;b()I
    • toString Link icon

      public String toString()
      Overrides:
      toString in class Object
    • getDebugLabel Link icon

      public String getDebugLabel()
      Mappings:
      Namespace Name Mixin selector
      named getDebugLabel Lnet/minecraft/client/gl/ShaderProgram;getDebugLabel()Ljava/lang/String;
      intermediary method_68404 Lnet/minecraft/class_5944;method_68404()Ljava/lang/String;
      official c Lfjh;c()Ljava/lang/String;
    • getSamplerLocations Link icon

      public IntList getSamplerLocations()
      Mappings:
      Namespace Name Mixin selector
      named getSamplerLocations Lnet/minecraft/client/gl/ShaderProgram;getSamplerLocations()Lit/unimi/dsi/fastutil/ints/IntList;
      intermediary method_68405 Lnet/minecraft/class_5944;method_68405()Lit/unimi/dsi/fastutil/ints/IntList;
      official d Lfjh;d()Lit/unimi/dsi/fastutil/ints/IntList;
    • getSamplers Link icon

      public List<String> getSamplers()
      Mappings:
      Namespace Name Mixin selector
      named getSamplers Lnet/minecraft/client/gl/ShaderProgram;getSamplers()Ljava/util/List;
      intermediary method_68670 Lnet/minecraft/class_5944;method_68670()Ljava/util/List;
      official e Lfjh;e()Ljava/util/List;
    • getUniforms Link icon

      public List<GlUniform> getUniforms()
      Mappings:
      Namespace Name Mixin selector
      named getUniforms Lnet/minecraft/client/gl/ShaderProgram;getUniforms()Ljava/util/List;
      intermediary method_68406 Lnet/minecraft/class_5944;method_68406()Ljava/util/List;
      official f Lfjh;f()Ljava/util/List;
    • getType Link icon

      @Nullable private static @Nullable UniformType getType(int id)
      Mappings:
      Namespace Name Mixin selector
      named getType Lnet/minecraft/client/gl/ShaderProgram;getType(I)Lnet/minecraft/client/gl/UniformType;
      intermediary method_68695 Lnet/minecraft/class_5944;method_68695(I)Lnet/minecraft/class_10789;
      official a Lfjh;a(I)Lfku;