Class ShaderProgram

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

@Environment(CLIENT) public class ShaderProgram extends Object implements ShaderProgramSetupView, 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. ShaderStage is what represents a shader object.

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

    • SHADERS_DIRECTORY

      public static final String SHADERS_DIRECTORY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lftv;a:Ljava/lang/String;
      intermediary field_32778 Lnet/minecraft/class_5944;field_32778:Ljava/lang/String;
      named SHADERS_DIRECTORY Lnet/minecraft/client/gl/ShaderProgram;SHADERS_DIRECTORY:Ljava/lang/String;
    • CORE_DIRECTORY

      private static final String CORE_DIRECTORY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official r Lftv;r:Ljava/lang/String;
      intermediary field_40512 Lnet/minecraft/class_5944;field_40512:Ljava/lang/String;
      named CORE_DIRECTORY Lnet/minecraft/client/gl/ShaderProgram;CORE_DIRECTORY:Ljava/lang/String;
    • INCLUDE_DIRECTORY

      private static final String INCLUDE_DIRECTORY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official s Lftv;s:Ljava/lang/String;
      intermediary field_32779 Lnet/minecraft/class_5944;field_32779:Ljava/lang/String;
      named INCLUDE_DIRECTORY Lnet/minecraft/client/gl/ShaderProgram;INCLUDE_DIRECTORY:Ljava/lang/String;
    • LOGGER

      static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      official t Lftv;t:Lorg/slf4j/Logger;
      intermediary field_29483 Lnet/minecraft/class_5944;field_29483:Lorg/slf4j/Logger;
      named LOGGER Lnet/minecraft/client/gl/ShaderProgram;LOGGER:Lorg/slf4j/Logger;
    • DEFAULT_UNIFORM

      private static final Uniform DEFAULT_UNIFORM
      Mappings:
      Namespace Name Mixin selector
      official u Lftv;u:Lepk;
      intermediary field_29484 Lnet/minecraft/class_5944;field_29484:Lnet/minecraft/class_278;
      named DEFAULT_UNIFORM Lnet/minecraft/client/gl/ShaderProgram;DEFAULT_UNIFORM:Lnet/minecraft/client/gl/Uniform;
    • field_32780

      private static final boolean field_32780
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official v Lftv;v:Z
      intermediary field_32780 Lnet/minecraft/class_5944;field_32780:Z
      named field_32780 Lnet/minecraft/client/gl/ShaderProgram;field_32780:Z
    • activeProgram

      private static ShaderProgram activeProgram
      Mappings:
      Namespace Name Mixin selector
      official w Lftv;w:Lftv;
      intermediary field_29485 Lnet/minecraft/class_5944;field_29485:Lnet/minecraft/class_5944;
      named activeProgram Lnet/minecraft/client/gl/ShaderProgram;activeProgram:Lnet/minecraft/client/gl/ShaderProgram;
    • activeProgramGlRef

      private static int activeProgramGlRef
      Mappings:
      Namespace Name Mixin selector
      official x Lftv;x:I
      intermediary field_29486 Lnet/minecraft/class_5944;field_29486:I
      named activeProgramGlRef Lnet/minecraft/client/gl/ShaderProgram;activeProgramGlRef:I
    • samplers

      private final Map<String,Object> samplers
      Mappings:
      Namespace Name Mixin selector
      official y Lftv;y:Ljava/util/Map;
      intermediary field_29487 Lnet/minecraft/class_5944;field_29487:Ljava/util/Map;
      named samplers Lnet/minecraft/client/gl/ShaderProgram;samplers:Ljava/util/Map;
    • samplerNames

      private final List<String> samplerNames
      Mappings:
      Namespace Name Mixin selector
      official z Lftv;z:Ljava/util/List;
      intermediary field_29488 Lnet/minecraft/class_5944;field_29488:Ljava/util/List;
      named samplerNames Lnet/minecraft/client/gl/ShaderProgram;samplerNames:Ljava/util/List;
    • loadedSamplerIds

      private final List<Integer> loadedSamplerIds
      Mappings:
      Namespace Name Mixin selector
      official A Lftv;A:Ljava/util/List;
      intermediary field_29489 Lnet/minecraft/class_5944;field_29489:Ljava/util/List;
      named loadedSamplerIds Lnet/minecraft/client/gl/ShaderProgram;loadedSamplerIds:Ljava/util/List;
    • uniforms

      private final List<GlUniform> uniforms
      Mappings:
      Namespace Name Mixin selector
      official B Lftv;B:Ljava/util/List;
      intermediary field_29490 Lnet/minecraft/class_5944;field_29490:Ljava/util/List;
      named uniforms Lnet/minecraft/client/gl/ShaderProgram;uniforms:Ljava/util/List;
    • loadedUniformIds

      private final List<Integer> loadedUniformIds
      Mappings:
      Namespace Name Mixin selector
      official C Lftv;C:Ljava/util/List;
      intermediary field_29491 Lnet/minecraft/class_5944;field_29491:Ljava/util/List;
      named loadedUniformIds Lnet/minecraft/client/gl/ShaderProgram;loadedUniformIds:Ljava/util/List;
    • loadedUniforms

      private final Map<String,GlUniform> loadedUniforms
      Mappings:
      Namespace Name Mixin selector
      official D Lftv;D:Ljava/util/Map;
      intermediary field_29492 Lnet/minecraft/class_5944;field_29492:Ljava/util/Map;
      named loadedUniforms Lnet/minecraft/client/gl/ShaderProgram;loadedUniforms:Ljava/util/Map;
    • glRef

      private final int glRef
      Mappings:
      Namespace Name Mixin selector
      official E Lftv;E:I
      intermediary field_29493 Lnet/minecraft/class_5944;field_29493:I
      named glRef Lnet/minecraft/client/gl/ShaderProgram;glRef:I
    • name

      private final String name
      Mappings:
      Namespace Name Mixin selector
      official F Lftv;F:Ljava/lang/String;
      intermediary field_29494 Lnet/minecraft/class_5944;field_29494:Ljava/lang/String;
      named name Lnet/minecraft/client/gl/ShaderProgram;name:Ljava/lang/String;
    • dirty

      private boolean dirty
      Mappings:
      Namespace Name Mixin selector
      official G Lftv;G:Z
      intermediary field_29495 Lnet/minecraft/class_5944;field_29495:Z
      named dirty Lnet/minecraft/client/gl/ShaderProgram;dirty:Z
    • blendState

      private final GlBlendState blendState
      Mappings:
      Namespace Name Mixin selector
      official H Lftv;H:Lepl;
      intermediary field_29464 Lnet/minecraft/class_5944;field_29464:Lnet/minecraft/class_277;
      named blendState Lnet/minecraft/client/gl/ShaderProgram;blendState:Lnet/minecraft/client/gl/GlBlendState;
    • loadedAttributeIds

      private final List<Integer> loadedAttributeIds
      Mappings:
      Namespace Name Mixin selector
      official I Lftv;I:Ljava/util/List;
      intermediary field_29465 Lnet/minecraft/class_5944;field_29465:Ljava/util/List;
      named loadedAttributeIds Lnet/minecraft/client/gl/ShaderProgram;loadedAttributeIds:Ljava/util/List;
    • attributeNames

      private final List<String> attributeNames
      Mappings:
      Namespace Name Mixin selector
      official J Lftv;J:Ljava/util/List;
      intermediary field_29466 Lnet/minecraft/class_5944;field_29466:Ljava/util/List;
      named attributeNames Lnet/minecraft/client/gl/ShaderProgram;attributeNames:Ljava/util/List;
    • vertexShader

      private final ShaderStage vertexShader
      Mappings:
      Namespace Name Mixin selector
      official K Lftv;K:Lepp;
      intermediary field_29467 Lnet/minecraft/class_5944;field_29467:Lnet/minecraft/class_281;
      named vertexShader Lnet/minecraft/client/gl/ShaderProgram;vertexShader:Lnet/minecraft/client/gl/ShaderStage;
    • fragmentShader

      private final ShaderStage fragmentShader
      Mappings:
      Namespace Name Mixin selector
      official L Lftv;L:Lepp;
      intermediary field_29468 Lnet/minecraft/class_5944;field_29468:Lnet/minecraft/class_281;
      named fragmentShader Lnet/minecraft/client/gl/ShaderProgram;fragmentShader:Lnet/minecraft/client/gl/ShaderStage;
    • format

      private final VertexFormat format
      Mappings:
      Namespace Name Mixin selector
      official M Lftv;M:Leqg;
      intermediary field_29469 Lnet/minecraft/class_5944;field_29469:Lnet/minecraft/class_293;
      named format Lnet/minecraft/client/gl/ShaderProgram;format:Lnet/minecraft/client/render/VertexFormat;
    • modelViewMat

      @Nullable public final @Nullable GlUniform modelViewMat
      Mappings:
      Namespace Name Mixin selector
      official b Lftv;b:Leps;
      intermediary field_29470 Lnet/minecraft/class_5944;field_29470:Lnet/minecraft/class_284;
      named modelViewMat Lnet/minecraft/client/gl/ShaderProgram;modelViewMat:Lnet/minecraft/client/gl/GlUniform;
    • projectionMat

      @Nullable public final @Nullable GlUniform projectionMat
      Mappings:
      Namespace Name Mixin selector
      official c Lftv;c:Leps;
      intermediary field_29471 Lnet/minecraft/class_5944;field_29471:Lnet/minecraft/class_284;
      named projectionMat Lnet/minecraft/client/gl/ShaderProgram;projectionMat:Lnet/minecraft/client/gl/GlUniform;
    • viewRotationMat

      @Nullable public final @Nullable GlUniform viewRotationMat
      Mappings:
      Namespace Name Mixin selector
      official d Lftv;d:Leps;
      intermediary field_36323 Lnet/minecraft/class_5944;field_36323:Lnet/minecraft/class_284;
      named viewRotationMat Lnet/minecraft/client/gl/ShaderProgram;viewRotationMat:Lnet/minecraft/client/gl/GlUniform;
    • textureMat

      @Nullable public final @Nullable GlUniform textureMat
      Mappings:
      Namespace Name Mixin selector
      official e Lftv;e:Leps;
      intermediary field_29472 Lnet/minecraft/class_5944;field_29472:Lnet/minecraft/class_284;
      named textureMat Lnet/minecraft/client/gl/ShaderProgram;textureMat:Lnet/minecraft/client/gl/GlUniform;
    • screenSize

      @Nullable public final @Nullable GlUniform screenSize
      Mappings:
      Namespace Name Mixin selector
      official f Lftv;f:Leps;
      intermediary field_29473 Lnet/minecraft/class_5944;field_29473:Lnet/minecraft/class_284;
      named screenSize Lnet/minecraft/client/gl/ShaderProgram;screenSize:Lnet/minecraft/client/gl/GlUniform;
    • colorModulator

      @Nullable public final @Nullable GlUniform colorModulator
      Mappings:
      Namespace Name Mixin selector
      official g Lftv;g:Leps;
      intermediary field_29474 Lnet/minecraft/class_5944;field_29474:Lnet/minecraft/class_284;
      named colorModulator Lnet/minecraft/client/gl/ShaderProgram;colorModulator:Lnet/minecraft/client/gl/GlUniform;
    • light0Direction

      @Nullable public final @Nullable GlUniform light0Direction
      Mappings:
      Namespace Name Mixin selector
      official h Lftv;h:Leps;
      intermediary field_29475 Lnet/minecraft/class_5944;field_29475:Lnet/minecraft/class_284;
      named light0Direction Lnet/minecraft/client/gl/ShaderProgram;light0Direction:Lnet/minecraft/client/gl/GlUniform;
    • light1Direction

      @Nullable public final @Nullable GlUniform light1Direction
      Mappings:
      Namespace Name Mixin selector
      official i Lftv;i:Leps;
      intermediary field_29476 Lnet/minecraft/class_5944;field_29476:Lnet/minecraft/class_284;
      named light1Direction Lnet/minecraft/client/gl/ShaderProgram;light1Direction:Lnet/minecraft/client/gl/GlUniform;
    • glintAlpha

      @Nullable public final @Nullable GlUniform glintAlpha
      Mappings:
      Namespace Name Mixin selector
      official j Lftv;j:Leps;
      intermediary field_42231 Lnet/minecraft/class_5944;field_42231:Lnet/minecraft/class_284;
      named glintAlpha Lnet/minecraft/client/gl/ShaderProgram;glintAlpha:Lnet/minecraft/client/gl/GlUniform;
    • fogStart

      @Nullable public final @Nullable GlUniform fogStart
      Mappings:
      Namespace Name Mixin selector
      official k Lftv;k:Leps;
      intermediary field_29477 Lnet/minecraft/class_5944;field_29477:Lnet/minecraft/class_284;
      named fogStart Lnet/minecraft/client/gl/ShaderProgram;fogStart:Lnet/minecraft/client/gl/GlUniform;
    • fogEnd

      @Nullable public final @Nullable GlUniform fogEnd
      Mappings:
      Namespace Name Mixin selector
      official l Lftv;l:Leps;
      intermediary field_29478 Lnet/minecraft/class_5944;field_29478:Lnet/minecraft/class_284;
      named fogEnd Lnet/minecraft/client/gl/ShaderProgram;fogEnd:Lnet/minecraft/client/gl/GlUniform;
    • fogColor

      @Nullable public final @Nullable GlUniform fogColor
      Mappings:
      Namespace Name Mixin selector
      official m Lftv;m:Leps;
      intermediary field_29479 Lnet/minecraft/class_5944;field_29479:Lnet/minecraft/class_284;
      named fogColor Lnet/minecraft/client/gl/ShaderProgram;fogColor:Lnet/minecraft/client/gl/GlUniform;
    • fogShape

      @Nullable public final @Nullable GlUniform fogShape
      Mappings:
      Namespace Name Mixin selector
      official n Lftv;n:Leps;
      intermediary field_36373 Lnet/minecraft/class_5944;field_36373:Lnet/minecraft/class_284;
      named fogShape Lnet/minecraft/client/gl/ShaderProgram;fogShape:Lnet/minecraft/client/gl/GlUniform;
    • lineWidth

      @Nullable public final @Nullable GlUniform lineWidth
      Mappings:
      Namespace Name Mixin selector
      official o Lftv;o:Leps;
      intermediary field_29480 Lnet/minecraft/class_5944;field_29480:Lnet/minecraft/class_284;
      named lineWidth Lnet/minecraft/client/gl/ShaderProgram;lineWidth:Lnet/minecraft/client/gl/GlUniform;
    • gameTime

      @Nullable public final @Nullable GlUniform gameTime
      Mappings:
      Namespace Name Mixin selector
      official p Lftv;p:Leps;
      intermediary field_29481 Lnet/minecraft/class_5944;field_29481:Lnet/minecraft/class_284;
      named gameTime Lnet/minecraft/client/gl/ShaderProgram;gameTime:Lnet/minecraft/client/gl/GlUniform;
    • chunkOffset

      @Nullable public final @Nullable GlUniform chunkOffset
      Mappings:
      Namespace Name Mixin selector
      official q Lftv;q:Leps;
      intermediary field_29482 Lnet/minecraft/class_5944;field_29482:Lnet/minecraft/class_284;
      named chunkOffset Lnet/minecraft/client/gl/ShaderProgram;chunkOffset:Lnet/minecraft/client/gl/GlUniform;
  • Constructor Details

    • ShaderProgram

      public ShaderProgram(ResourceFactory factory, String name, VertexFormat format) throws IOException
      Throws:
      IOException
      Mappings:
      Namespace Name Mixin selector
      official <init> Lftv;<init>(Laql;Ljava/lang/String;Leqg;)V
      intermediary <init> Lnet/minecraft/class_5944;<init>(Lnet/minecraft/class_5912;Ljava/lang/String;Lnet/minecraft/class_293;)V
      named <init> Lnet/minecraft/client/gl/ShaderProgram;<init>(Lnet/minecraft/resource/ResourceFactory;Ljava/lang/String;Lnet/minecraft/client/render/VertexFormat;)V
  • Method Details

    • loadShader

      private static ShaderStage loadShader(ResourceFactory factory, ShaderStage.Type type, String name) throws IOException
      Throws:
      IOException
      Mappings:
      Namespace Name Mixin selector
      official a Lftv;a(Laql;Lepp$a;Ljava/lang/String;)Lepp;
      intermediary method_34579 Lnet/minecraft/class_5944;method_34579(Lnet/minecraft/class_5912;Lnet/minecraft/class_281$class_282;Ljava/lang/String;)Lnet/minecraft/class_281;
      named loadShader Lnet/minecraft/client/gl/ShaderProgram;loadShader(Lnet/minecraft/resource/ResourceFactory;Lnet/minecraft/client/gl/ShaderStage$Type;Ljava/lang/String;)Lnet/minecraft/client/gl/ShaderStage;
    • readBlendState

      public static GlBlendState readBlendState(JsonObject json)
      Mappings:
      Namespace Name Mixin selector
      official a Lftv;a(Lcom/google/gson/JsonObject;)Lepl;
      intermediary method_34581 Lnet/minecraft/class_5944;method_34581(Lcom/google/gson/JsonObject;)Lnet/minecraft/class_277;
      named readBlendState Lnet/minecraft/client/gl/ShaderProgram;readBlendState(Lcom/google/gson/JsonObject;)Lnet/minecraft/client/gl/GlBlendState;
    • close

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

      public void unbind()
      Mappings:
      Namespace Name Mixin selector
      official f Lftv;f()V
      intermediary method_34585 Lnet/minecraft/class_5944;method_34585()V
      named unbind Lnet/minecraft/client/gl/ShaderProgram;unbind()V
    • bind

      public void bind()
      Mappings:
      Namespace Name Mixin selector
      official g Lftv;g()V
      intermediary method_34586 Lnet/minecraft/class_5944;method_34586()V
      named bind Lnet/minecraft/client/gl/ShaderProgram;bind()V
    • markUniformsDirty

      public void markUniformsDirty()
      Specified by:
      markUniformsDirty in interface ShaderProgramSetupView
      Mappings:
      Namespace Name Mixin selector
      official b Lepr;b()V
      intermediary method_1279 Lnet/minecraft/class_3679;method_1279()V
      named markUniformsDirty Lnet/minecraft/client/gl/ShaderProgramSetupView;markUniformsDirty()V
    • getUniform

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

      public Uniform getUniformOrDefault(String name)
      Mappings:
      Namespace Name Mixin selector
      official b Lftv;b(Ljava/lang/String;)Lepk;
      intermediary method_35785 Lnet/minecraft/class_5944;method_35785(Ljava/lang/String;)Lnet/minecraft/class_278;
      named getUniformOrDefault Lnet/minecraft/client/gl/ShaderProgram;getUniformOrDefault(Ljava/lang/String;)Lnet/minecraft/client/gl/Uniform;
    • loadReferences

      private void loadReferences()
      Mappings:
      Namespace Name Mixin selector
      official j Lftv;j()V
      intermediary method_34588 Lnet/minecraft/class_5944;method_34588()V
      named loadReferences Lnet/minecraft/client/gl/ShaderProgram;loadReferences()V
    • readSampler

      private void readSampler(JsonElement json)
      Mappings:
      Namespace Name Mixin selector
      official a Lftv;a(Lcom/google/gson/JsonElement;)V
      intermediary method_34580 Lnet/minecraft/class_5944;method_34580(Lcom/google/gson/JsonElement;)V
      named readSampler Lnet/minecraft/client/gl/ShaderProgram;readSampler(Lcom/google/gson/JsonElement;)V
    • addSampler

      public void addSampler(String name, Object sampler)
      Mappings:
      Namespace Name Mixin selector
      official a Lftv;a(Ljava/lang/String;Ljava/lang/Object;)V
      intermediary method_34583 Lnet/minecraft/class_5944;method_34583(Ljava/lang/String;Ljava/lang/Object;)V
      named addSampler Lnet/minecraft/client/gl/ShaderProgram;addSampler(Ljava/lang/String;Ljava/lang/Object;)V
    • addUniform

      private void addUniform(JsonElement json) throws InvalidHierarchicalFileException
      Throws:
      InvalidHierarchicalFileException
      Mappings:
      Namespace Name Mixin selector
      official b Lftv;b(Lcom/google/gson/JsonElement;)V
      intermediary method_34584 Lnet/minecraft/class_5944;method_34584(Lcom/google/gson/JsonElement;)V
      named addUniform Lnet/minecraft/client/gl/ShaderProgram;addUniform(Lcom/google/gson/JsonElement;)V
    • getVertexShader

      public ShaderStage getVertexShader()
      Specified by:
      getVertexShader in interface ShaderProgramSetupView
      Mappings:
      Namespace Name Mixin selector
      official c Lepr;c()Lepp;
      intermediary method_1274 Lnet/minecraft/class_3679;method_1274()Lnet/minecraft/class_281;
      named getVertexShader Lnet/minecraft/client/gl/ShaderProgramSetupView;getVertexShader()Lnet/minecraft/client/gl/ShaderStage;
    • getFragmentShader

      public ShaderStage getFragmentShader()
      Specified by:
      getFragmentShader in interface ShaderProgramSetupView
      Mappings:
      Namespace Name Mixin selector
      official d Lepr;d()Lepp;
      intermediary method_1278 Lnet/minecraft/class_3679;method_1278()Lnet/minecraft/class_281;
      named getFragmentShader Lnet/minecraft/client/gl/ShaderProgramSetupView;getFragmentShader()Lnet/minecraft/client/gl/ShaderStage;
    • attachReferencedShaders

      public void attachReferencedShaders()
      Specified by:
      attachReferencedShaders in interface ShaderProgramSetupView
      Mappings:
      Namespace Name Mixin selector
      official e Lepr;e()V
      intermediary method_34418 Lnet/minecraft/class_3679;method_34418()V
      named attachReferencedShaders Lnet/minecraft/client/gl/ShaderProgramSetupView;attachReferencedShaders()V
    • getFormat

      public VertexFormat getFormat()
      Mappings:
      Namespace Name Mixin selector
      official h Lftv;h()Leqg;
      intermediary method_35786 Lnet/minecraft/class_5944;method_35786()Lnet/minecraft/class_293;
      named getFormat Lnet/minecraft/client/gl/ShaderProgram;getFormat()Lnet/minecraft/client/render/VertexFormat;
    • getName

      public String getName()
      Mappings:
      Namespace Name Mixin selector
      official i Lftv;i()Ljava/lang/String;
      intermediary method_35787 Lnet/minecraft/class_5944;method_35787()Ljava/lang/String;
      named getName Lnet/minecraft/client/gl/ShaderProgram;getName()Ljava/lang/String;
    • getGlRef

      public int getGlRef()
      Specified by:
      getGlRef in interface ShaderProgramSetupView
      Mappings:
      Namespace Name Mixin selector
      official a Lepr;a()I
      intermediary method_1270 Lnet/minecraft/class_3679;method_1270()I
      named getGlRef Lnet/minecraft/client/gl/ShaderProgramSetupView;getGlRef()I