Package dev.cammiescorner.velvet.impl
Class ReloadableShaderEffectManager
java.lang.Object
dev.cammiescorner.velvet.impl.ReloadableShaderEffectManager
- All Implemented Interfaces:
LevelRendererReloadCallback,ResolutionChangeCallback,ShaderEffectManager
public final class ReloadableShaderEffectManager
extends Object
implements ShaderEffectManager, ResolutionChangeCallback, LevelRendererReloadCallback
A
ShaderEffectManager that is reloaded along with resources- See Also:
-
Field Summary
FieldsFields inherited from interface dev.cammiescorner.velvet.api.event.LevelRendererReloadCallback
EVENTFields inherited from interface dev.cammiescorner.velvet.api.event.ResolutionChangeCallback
EVENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose(ManagedCoreShader shader) voiddispose(ManagedShaderEffect shader) Removes a shader from the global list of managed shaders, making it not respond to resource reloading and screen resizing.manage(net.minecraft.resources.ResourceLocation location) Manages a post-processing shader loaded from a json definition filemanage(net.minecraft.resources.ResourceLocation location, Consumer<ManagedShaderEffect> initCallback) Manages a post-processing shader loaded from a json definition filemanageCoreShader(net.minecraft.resources.ResourceLocation location) Manages a coreShaderInstanceloaded from a json definition filemanageCoreShader(net.minecraft.resources.ResourceLocation location, com.mojang.blaze3d.vertex.VertexFormat vertexFormat) Manages a coreShaderInstanceloaded from a json definition filemanageCoreShader(net.minecraft.resources.ResourceLocation location, com.mojang.blaze3d.vertex.VertexFormat vertexFormat, Consumer<ManagedCoreShader> initCallback) Manages a coreShaderInstanceloaded from a json definition filevoidonRendererReload(net.minecraft.client.renderer.LevelRenderer renderer) voidonResolutionChanged(int newWidth, int newHeight) voidreload(net.minecraft.server.packs.resources.ResourceProvider shaderResources)
-
Field Details
-
INSTANCE
-
-
Constructor Details
-
ReloadableShaderEffectManager
public ReloadableShaderEffectManager()
-
-
Method Details
-
manage
Manages a post-processing shader loaded from a json definition file- Specified by:
managein interfaceShaderEffectManager- Parameters:
location- the location of the json within your mod's assets- Returns:
- a lazily initialized shader effect
-
manage
public ManagedShaderEffect manage(net.minecraft.resources.ResourceLocation location, Consumer<ManagedShaderEffect> initCallback) Manages a post-processing shader loaded from a json definition file- Specified by:
managein interfaceShaderEffectManager- Parameters:
location- the location of the json within your mod's assetsinitCallback- a block ran once the shader effect is initialized- Returns:
- a lazily initialized screen shader
-
manageCoreShader
Description copied from interface:ShaderEffectManagerManages a coreShaderInstanceloaded from a json definition fileThis overload forwards to
ShaderEffectManager.manageCoreShader(ResourceLocation, VertexFormat)withDefaultVertexFormat.NEW_ENTITY, the format used by entity renderingThe shader location must be in
assets/shaders/core. Eg. to get a shader located atmymod/assets/shaders/core/myshader.json:ShaderEffectManager.getInstance().manageCoreShader(Identifier.of("mymod", "myshader")- Specified by:
manageCoreShaderin interfaceShaderEffectManager- Parameters:
location- the location of the json within your mod's assets- Returns:
- a core render shader that will be reloaded as needed
-
manageCoreShader
public ManagedCoreShader manageCoreShader(net.minecraft.resources.ResourceLocation location, com.mojang.blaze3d.vertex.VertexFormat vertexFormat) Description copied from interface:ShaderEffectManagerManages a coreShaderInstanceloaded from a json definition fileThe shader location must be in
assets/shaders/core. Eg. to get a shader located atmymod/assets/shaders/core/myshader.json:ShaderEffectManager.getInstance().manageCoreShader(Identifier.of("mymod", "myshader")- Specified by:
manageCoreShaderin interfaceShaderEffectManager- Parameters:
location- the location of the json within your mod's assetsvertexFormat- the format expected by your shader- Returns:
- a core render shader that will be reloaded as needed
-
manageCoreShader
public ManagedCoreShader manageCoreShader(net.minecraft.resources.ResourceLocation location, com.mojang.blaze3d.vertex.VertexFormat vertexFormat, Consumer<ManagedCoreShader> initCallback) Description copied from interface:ShaderEffectManagerManages a coreShaderInstanceloaded from a json definition fileThe shader location must be in
assets/shaders/core. E.g. to get a shader located atmymod/assets/shaders/core/myshader.json:ShaderEffectManager.getInstance().manageCoreShader(Identifier.of("mymod", "myshader")- Specified by:
manageCoreShaderin interfaceShaderEffectManager- Parameters:
location- the location of the json within your mod's assetsvertexFormat- the format expected by your shaderinitCallback- a block ran once the shader effect is initialized- Returns:
- a core render shader that will be reloaded as needed
-
dispose
Removes a shader from the global list of managed shaders, making it not respond to resource reloading and screen resizing. This also callsResettableManagedShaderBase.release()to release the shader's resources. AManagedShaderEffectobject cannot be used after it has been disposed of.- Specified by:
disposein interfaceShaderEffectManager- Parameters:
shader- the shader to stop managing- See Also:
-
dispose
- Specified by:
disposein interfaceShaderEffectManager
-
reload
public void reload(net.minecraft.server.packs.resources.ResourceProvider shaderResources) -
onResolutionChanged
public void onResolutionChanged(int newWidth, int newHeight) - Specified by:
onResolutionChangedin interfaceResolutionChangeCallback
-
onRendererReload
public void onRendererReload(net.minecraft.client.renderer.LevelRenderer renderer) - Specified by:
onRendererReloadin interfaceLevelRendererReloadCallback
-