Package codechicken.lib.render.shader
Class ShaderProgram
java.lang.Object
codechicken.lib.render.shader.ShaderProgram
- All Implemented Interfaces:
net.minecraft.server.packs.resources.PreparableReloadListener,net.minecraft.server.packs.resources.ResourceManagerReloadListener
public class ShaderProgram
extends Object
implements net.minecraft.server.packs.resources.ResourceManagerReloadListener
A ShaderProgram.
As of 1.18.2, you will probably want to use CCShaderInstance instead as an extension
to Vanilla's ShaderInstance.
You probably want ShaderProgramBuilder to construct a ShaderProgram.
it should be noted, that a ShaderProgram is a ResourceManagerReloadListener,
its recommended that you ensure this is registered to ReloadableResourceManager
to ensure ShaderObjects are re loaded properly when Resources are reloaded.
Created by covers1624 on 24/5/20.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.server.packs.resources.PreparableReloadListener
net.minecraft.server.packs.resources.PreparableReloadListener.PreparationBarrier -
Method Summary
Modifier and TypeMethodDescriptionvoidcompile()Forces the ShaderProgram to compile and link.intGets the GLShaderProgramid for this shader.Gets allShaderObjects that make up thisShaderProgram.@Nullable CCUniformgetUniform(String name) Get aCCUniformfrom thisShaderProgram.Get allUniformPairs exposed by this shader.voidonResourceManagerReload(net.minecraft.server.packs.resources.ResourceManager resourceManager) voidrelease()Releases this shader.voiduse()Binds this shader for use, Lazily allocates, links and compiles allShaderObjects.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.server.packs.resources.PreparableReloadListener
getNameMethods inherited from interface net.minecraft.server.packs.resources.ResourceManagerReloadListener
reload
-
Method Details
-
getShaders
Gets allShaderObjects that make up thisShaderProgram.- Returns:
- The
ShaderObjects.
-
getUniforms
Get allUniformPairs exposed by this shader.- Returns:
- The uniforms.
-
getUniform
Get aCCUniformfrom thisShaderProgram.- Parameters:
name- The name of the Uniform.- Returns:
- the
CCUniform.
-
getProgramId
public int getProgramId()Gets the GLShaderProgramid for this shader. Might not be initialized untiluse()is called once.- Returns:
- The id, -1 if not initialized.
-
use
public void use()Binds this shader for use, Lazily allocates, links and compiles allShaderObjects. -
compile
public void compile()Forces the ShaderProgram to compile and link.This will happen automatically when calling
use(), however, it may be required to call this ahead of time in some cases.Be sure to only call this when you have GL context.
-
release
public void release()Releases this shader. -
onResourceManagerReload
public void onResourceManagerReload(net.minecraft.server.packs.resources.ResourceManager resourceManager) - Specified by:
onResourceManagerReloadin interfacenet.minecraft.server.packs.resources.ResourceManagerReloadListener
-