Class BaseShader
- java.lang.Object
-
- com.badlogic.gdx.graphics.g3d.shaders.BaseShader
-
- All Implemented Interfaces:
Shader,Disposable
- Direct Known Subclasses:
DefaultShader,ParticleShader
public abstract class BaseShader extends java.lang.Object implements Shader
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBaseShader.GlobalSetterstatic classBaseShader.LocalSetterstatic interfaceBaseShader.Setterstatic classBaseShader.Uniformstatic interfaceBaseShader.Validator
-
Field Summary
Fields Modifier and Type Field Description CameracameraRenderContextcontextShaderProgramprogram
-
Constructor Summary
Constructors Constructor Description BaseShader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbegin(Camera camera, RenderContext context)Initializes the context for exclusive rendering by this shader.voiddispose()Releases all resources of this object.voidend()Cleanup the context so other shaders can render.java.lang.StringgetUniformAlias(int id)intgetUniformID(java.lang.String alias)booleanhas(int inputID)Whether this Shader instance implements the specified uniform, only valid after a call to init().voidinit(ShaderProgram program, Renderable renderable)Initialize this shader, causing all registered uniforms/attributes to be fetched.intloc(int inputID)intregister(BaseShader.Uniform uniform)intregister(BaseShader.Uniform uniform, BaseShader.Setter setter)intregister(java.lang.String alias)intregister(java.lang.String alias, BaseShader.Setter setter)intregister(java.lang.String alias, BaseShader.Validator validator)intregister(java.lang.String alias, BaseShader.Validator validator, BaseShader.Setter setter)Register an uniform which might be used by this shader.voidrender(Renderable renderable)Renders theRenderable, must be called betweenShader.begin(Camera, RenderContext)andShader.end().voidrender(Renderable renderable, Attributes combinedAttributes)booleanset(int uniform, float value)booleanset(int uniform, float v1, float v2)booleanset(int uniform, float v1, float v2, float v3)booleanset(int uniform, float v1, float v2, float v3, float v4)booleanset(int uniform, int value)booleanset(int uniform, int v1, int v2)booleanset(int uniform, int v1, int v2, int v3)booleanset(int uniform, int v1, int v2, int v3, int v4)booleanset(int uniform, Color value)booleanset(int uniform, TextureDescriptor textureDesc)booleanset(int uniform, GLTexture texture)booleanset(int uniform, Matrix3 value)booleanset(int uniform, Matrix4 value)booleanset(int uniform, Vector2 value)booleanset(int uniform, Vector3 value)
-
-
-
Field Detail
-
program
public ShaderProgram program
-
context
public RenderContext context
-
camera
public Camera camera
-
-
Method Detail
-
register
public int register(java.lang.String alias, BaseShader.Validator validator, BaseShader.Setter setter)Register an uniform which might be used by this shader. Only possible prior to the call to init().- Returns:
- The ID of the uniform to use in this shader.
-
register
public int register(java.lang.String alias, BaseShader.Validator validator)
-
register
public int register(java.lang.String alias, BaseShader.Setter setter)
-
register
public int register(java.lang.String alias)
-
register
public int register(BaseShader.Uniform uniform, BaseShader.Setter setter)
-
register
public int register(BaseShader.Uniform uniform)
-
getUniformID
public int getUniformID(java.lang.String alias)
- Returns:
- the ID of the input or negative if not available.
-
getUniformAlias
public java.lang.String getUniformAlias(int id)
- Returns:
- The input at the specified id.
-
init
public void init(ShaderProgram program, Renderable renderable)
Initialize this shader, causing all registered uniforms/attributes to be fetched.
-
begin
public void begin(Camera camera, RenderContext context)
Description copied from interface:ShaderInitializes the context for exclusive rendering by this shader. Use theShader.render(Renderable)method to render aRenderable. When done rendering theShader.end()method must be called.- Specified by:
beginin interfaceShader- Parameters:
camera- The camera to use when renderingcontext- The context to be used, which must be exclusive available for the shader until the call to theShader.end()method.
-
render
public void render(Renderable renderable)
Description copied from interface:ShaderRenders theRenderable, must be called betweenShader.begin(Camera, RenderContext)andShader.end(). The Shader instance might not be able to render every type ofRenderables. Use theShader.canRender(Renderable)method to check if the Shader is capable of rendering a specificRenderable.- Specified by:
renderin interfaceShader- Parameters:
renderable- The renderable to render, all required fields (e.g.Renderable.materialand others) must be set. TheRenderable.shaderfield will be ignored.
-
render
public void render(Renderable renderable, Attributes combinedAttributes)
-
end
public void end()
Description copied from interface:ShaderCleanup the context so other shaders can render. Must be called when done rendering using theShader.render(Renderable)method, which must be preceded by a call toShader.begin(Camera, RenderContext). After a call to this method an call to theShader.render(Renderable)method will fail until theShader.begin(Camera, RenderContext)is called.
-
dispose
public void dispose()
Description copied from interface:DisposableReleases all resources of this object.- Specified by:
disposein interfaceDisposable
-
has
public final boolean has(int inputID)
Whether this Shader instance implements the specified uniform, only valid after a call to init().
-
loc
public final int loc(int inputID)
-
set
public final boolean set(int uniform, Matrix4 value)
-
set
public final boolean set(int uniform, Matrix3 value)
-
set
public final boolean set(int uniform, Vector3 value)
-
set
public final boolean set(int uniform, Vector2 value)
-
set
public final boolean set(int uniform, Color value)
-
set
public final boolean set(int uniform, float value)
-
set
public final boolean set(int uniform, float v1, float v2)
-
set
public final boolean set(int uniform, float v1, float v2, float v3)
-
set
public final boolean set(int uniform, float v1, float v2, float v3, float v4)
-
set
public final boolean set(int uniform, int value)
-
set
public final boolean set(int uniform, int v1, int v2)
-
set
public final boolean set(int uniform, int v1, int v2, int v3)
-
set
public final boolean set(int uniform, int v1, int v2, int v3, int v4)
-
set
public final boolean set(int uniform, TextureDescriptor textureDesc)
-
set
public final boolean set(int uniform, GLTexture texture)
-
-