Package net.minecraft.client.renderer
Class ShaderManager
java.lang.Object
net.neoforged.neoforge.resource.ContextAwareReloadListener
net.minecraft.server.packs.resources.SimplePreparableReloadListener<ShaderManager.Configs>
net.minecraft.client.renderer.ShaderManager
- All Implemented Interfaces:
AutoCloseable,PreparableReloadListener
public class ShaderManager
extends SimplePreparableReloadListener<ShaderManager.Configs>
implements AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classstatic classstatic final record(package private) static final record(package private) static final recordNested classes/interfaces inherited from interface net.minecraft.server.packs.resources.PreparableReloadListener
PreparableReloadListener.PreparationBarrier -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ShaderManager.CompilationCache(package private) static final org.slf4j.Loggerstatic final intprivate static final FileToIdConverterprivate static final FileToIdConverterstatic final Stringstatic final String(package private) final TextureManager -
Constructor Summary
ConstructorsConstructorDescriptionShaderManager(TextureManager pTextureManager, Consumer<Exception> pRecoveryHandler) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidapply(ShaderManager.Configs p_366597_, ResourceManager p_366533_, ProfilerFiller p_366866_) voidclose()private static GlslPreprocessorcreatePreprocessor(Map<ResourceLocation, Resource> pShaderResources, ResourceLocation pShaderLocation) getName()getPostChain(ResourceLocation pId, Set<ResourceLocation> pExternalTargets) getProgram(ShaderProgram pProgram) getProgramForLoading(ShaderProgram pProgram) private static booleanisProgram(ResourceLocation pLocation) private static booleanisShader(ResourceLocation pLocation) (package private) static CompiledShaderProgramlinkProgram(ShaderProgram pProgram, ShaderProgramConfig pConfig, CompiledShader pVertexShader, CompiledShader pFragmentShader) private static voidloadPostChain(ResourceLocation pLocation, Resource pPostChain, ImmutableMap.Builder<ResourceLocation, PostChainConfig> pOutput) private static voidloadProgram(ResourceLocation pLocation, Resource pResource, ImmutableMap.Builder<ResourceLocation, ShaderProgramConfig> pOutput) private static voidloadShader(ResourceLocation pLocation, Resource pShader, CompiledShader.Type pType, Map<ResourceLocation, Resource> pShaderResources, ImmutableMap.Builder<ShaderManager.ShaderSourceKey, String> pOutput) voidpreloadForStartup(ResourceProvider pResourceProvider, ShaderProgram... pPrograms) private CompiledShaderpreloadShader(ResourceProvider pResourceProvider, ResourceLocation pShader, CompiledShader.Type pType, ShaderDefines pDefines) protected ShaderManager.Configsprepare(ResourceManager p_366761_, ProfilerFiller p_366562_) Performs any reloading that can be done off-thread, such as file IOprivate voidtryTriggerRecovery(Exception pException) Methods inherited from class net.minecraft.server.packs.resources.SimplePreparableReloadListener
reloadMethods inherited from class net.neoforged.neoforge.resource.ContextAwareReloadListener
getContext, getRegistryLookup, injectContext, makeConditionalOps, makeConditionalOps
-
Field Details
-
LOGGER
static final org.slf4j.Logger LOGGER -
SHADER_PATH
- See Also:
-
SHADER_INCLUDE_PATH
- See Also:
-
PROGRAM_ID_CONVERTER
-
POST_CHAIN_ID_CONVERTER
-
MAX_LOG_LENGTH
public static final int MAX_LOG_LENGTH- See Also:
-
textureManager
-
recoveryHandler
-
compilationCache
-
-
Constructor Details
-
ShaderManager
-
-
Method Details
-
prepare
Description copied from class:SimplePreparableReloadListenerPerforms any reloading that can be done off-thread, such as file IO- Specified by:
preparein classSimplePreparableReloadListener<ShaderManager.Configs>
-
loadShader
private static void loadShader(ResourceLocation pLocation, Resource pShader, CompiledShader.Type pType, Map<ResourceLocation, Resource> pShaderResources, ImmutableMap.Builder<ShaderManager.ShaderSourceKey, String> pOutput) -
createPreprocessor
private static GlslPreprocessor createPreprocessor(Map<ResourceLocation, Resource> pShaderResources, ResourceLocation pShaderLocation) -
loadProgram
private static void loadProgram(ResourceLocation pLocation, Resource pResource, ImmutableMap.Builder<ResourceLocation, ShaderProgramConfig> pOutput) -
loadPostChain
private static void loadPostChain(ResourceLocation pLocation, Resource pPostChain, ImmutableMap.Builder<ResourceLocation, PostChainConfig> pOutput) -
isProgram
-
isShader
-
apply
protected void apply(ShaderManager.Configs p_366597_, ResourceManager p_366533_, ProfilerFiller p_366866_) - Specified by:
applyin classSimplePreparableReloadListener<ShaderManager.Configs>
-
getName
- Specified by:
getNamein interfacePreparableReloadListener
-
tryTriggerRecovery
-
preloadForStartup
public void preloadForStartup(ResourceProvider pResourceProvider, ShaderProgram... pPrograms) throws IOException, ShaderManager.CompilationException -
preloadShader
private CompiledShader preloadShader(ResourceProvider pResourceProvider, ResourceLocation pShader, CompiledShader.Type pType, ShaderDefines pDefines) throws IOException, ShaderManager.CompilationException -
getProgram
-
getProgramForLoading
public CompiledShaderProgram getProgramForLoading(ShaderProgram pProgram) throws ShaderManager.CompilationException -
linkProgram
static CompiledShaderProgram linkProgram(ShaderProgram pProgram, ShaderProgramConfig pConfig, CompiledShader pVertexShader, CompiledShader pFragmentShader) throws ShaderManager.CompilationException -
getPostChain
@Nullable public PostChain getPostChain(ResourceLocation pId, Set<ResourceLocation> pExternalTargets) -
close
public void close()- Specified by:
closein interfaceAutoCloseable
-