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 class
BaseShader.GlobalSetter
static class
BaseShader.LocalSetter
static interface
BaseShader.Setter
static class
BaseShader.Uniform
static interface
BaseShader.Validator
-
Field Summary
Fields Modifier and Type Field Description Camera
camera
RenderContext
context
ShaderProgram
program
-
Constructor Summary
Constructors Constructor Description BaseShader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
begin(Camera camera, RenderContext context)
Initializes the context for exclusive rendering by this shader.void
dispose()
Releases all resources of this object.void
end()
Cleanup the context so other shaders can render.java.lang.String
getUniformAlias(int id)
int
getUniformID(java.lang.String alias)
boolean
has(int inputID)
Whether this Shader instance implements the specified uniform, only valid after a call to init().void
init(ShaderProgram program, Renderable renderable)
Initialize this shader, causing all registered uniforms/attributes to be fetched.int
loc(int inputID)
int
register(BaseShader.Uniform uniform)
int
register(BaseShader.Uniform uniform, BaseShader.Setter setter)
int
register(java.lang.String alias)
int
register(java.lang.String alias, BaseShader.Setter setter)
int
register(java.lang.String alias, BaseShader.Validator validator)
int
register(java.lang.String alias, BaseShader.Validator validator, BaseShader.Setter setter)
Register an uniform which might be used by this shader.void
render(Renderable renderable)
Renders theRenderable
, must be called betweenShader.begin(Camera, RenderContext)
andShader.end()
.void
render(Renderable renderable, Attributes combinedAttributes)
boolean
set(int uniform, float value)
boolean
set(int uniform, float v1, float v2)
boolean
set(int uniform, float v1, float v2, float v3)
boolean
set(int uniform, float v1, float v2, float v3, float v4)
boolean
set(int uniform, int value)
boolean
set(int uniform, int v1, int v2)
boolean
set(int uniform, int v1, int v2, int v3)
boolean
set(int uniform, int v1, int v2, int v3, int v4)
boolean
set(int uniform, Color value)
boolean
set(int uniform, TextureDescriptor textureDesc)
boolean
set(int uniform, GLTexture texture)
boolean
set(int uniform, Matrix3 value)
boolean
set(int uniform, Matrix4 value)
boolean
set(int uniform, Vector2 value)
boolean
set(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:Shader
Initializes 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:
begin
in 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:Shader
Renders theRenderable
, must be called betweenShader.begin(Camera, RenderContext)
andShader.end()
. The Shader instance might not be able to render every type ofRenderable
s. Use theShader.canRender(Renderable)
method to check if the Shader is capable of rendering a specificRenderable
.- Specified by:
render
in interfaceShader
- Parameters:
renderable
- The renderable to render, all required fields (e.g.Renderable.material
and others) must be set. TheRenderable.shader
field will be ignored.
-
render
public void render(Renderable renderable, Attributes combinedAttributes)
-
end
public void end()
Description copied from interface:Shader
Cleanup 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:Disposable
Releases all resources of this object.- Specified by:
dispose
in 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)
-
-