Class ParticleShader
- java.lang.Object
-
- com.badlogic.gdx.graphics.g3d.shaders.BaseShader
-
- com.badlogic.gdx.graphics.g3d.particles.ParticleShader
-
- All Implemented Interfaces:
Shader,Disposable
public class ParticleShader extends BaseShader
This is a custom shader to render the particles. Usually is not required, because theDefaultShaderwill be used instead. This shader will be used when dealing with billboards using GPU mode or point sprites.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classParticleShader.AlignModestatic classParticleShader.Configstatic classParticleShader.Inputsstatic classParticleShader.ParticleTypestatic classParticleShader.Setters-
Nested classes/interfaces inherited from class com.badlogic.gdx.graphics.g3d.shaders.BaseShader
BaseShader.GlobalSetter, BaseShader.LocalSetter, BaseShader.Setter, BaseShader.Uniform, BaseShader.Validator
-
-
Field Summary
Fields Modifier and Type Field Description protected ParticleShader.Configconfigprotected static longimplementedFlags-
Fields inherited from class com.badlogic.gdx.graphics.g3d.shaders.BaseShader
camera, context, program
-
-
Constructor Summary
Constructors Constructor Description ParticleShader(Renderable renderable)ParticleShader(Renderable renderable, ParticleShader.Config config)ParticleShader(Renderable renderable, ParticleShader.Config config, ShaderProgram shaderProgram)ParticleShader(Renderable renderable, ParticleShader.Config config, java.lang.String prefix)ParticleShader(Renderable renderable, ParticleShader.Config config, java.lang.String prefix, java.lang.String vertexShader, java.lang.String fragmentShader)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbegin(Camera camera, RenderContext context)Initializes the context for exclusive rendering by this shader.protected voidbindMaterial(Renderable renderable)booleancanRender(Renderable renderable)Checks whether this shader is intended to render theRenderable.intcompareTo(Shader other)Compare this shader against the other, used for sorting, light weight shaders are rendered first.static java.lang.StringcreatePrefix(Renderable renderable, ParticleShader.Config config)voiddispose()Releases all resources of this object.voidend()Cleanup the context so other shaders can render.booleanequals(ParticleShader obj)booleanequals(java.lang.Object obj)intgetDefaultCullFace()intgetDefaultDepthFunc()static java.lang.StringgetDefaultFragmentShader()static java.lang.StringgetDefaultVertexShader()voidinit()Initializes the Shader, must be called before the Shader can be used.voidrender(Renderable renderable)Renders theRenderable, must be called betweenShader.begin(Camera, RenderContext)andShader.end().voidsetDefaultCullFace(int cullFace)voidsetDefaultDepthFunc(int depthFunc)
-
-
-
Field Detail
-
implementedFlags
protected static long implementedFlags
-
config
protected final ParticleShader.Config config
-
-
Constructor Detail
-
ParticleShader
public ParticleShader(Renderable renderable)
-
ParticleShader
public ParticleShader(Renderable renderable, ParticleShader.Config config)
-
ParticleShader
public ParticleShader(Renderable renderable, ParticleShader.Config config, java.lang.String prefix)
-
ParticleShader
public ParticleShader(Renderable renderable, ParticleShader.Config config, java.lang.String prefix, java.lang.String vertexShader, java.lang.String fragmentShader)
-
ParticleShader
public ParticleShader(Renderable renderable, ParticleShader.Config config, ShaderProgram shaderProgram)
-
-
Method Detail
-
getDefaultVertexShader
public static java.lang.String getDefaultVertexShader()
-
getDefaultFragmentShader
public static java.lang.String getDefaultFragmentShader()
-
init
public void init()
Description copied from interface:ShaderInitializes the Shader, must be called before the Shader can be used. This typically compiles aShaderProgram, fetches uniform locations and performs other preparations for usage of the Shader.
-
createPrefix
public static java.lang.String createPrefix(Renderable renderable, ParticleShader.Config config)
-
canRender
public boolean canRender(Renderable renderable)
Description copied from interface:ShaderChecks whether this shader is intended to render theRenderable. Use this to make sure a call to theShader.render(Renderable)method will succeed. This is expected to be a fast, non-blocking method. Note that this method will only return true if it is intended to be used. Even when it returns false the Shader might still be capable of rendering, but it's not preferred to do so.- Parameters:
renderable- The renderable to check against this shader.- Returns:
- true if this shader is intended to render the
Renderable, false otherwise.
-
compareTo
public int compareTo(Shader other)
Description copied from interface:ShaderCompare this shader against the other, used for sorting, light weight shaders are rendered first.
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
equals
public boolean equals(ParticleShader obj)
-
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- Overrides:
beginin classBaseShader- 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- Overrides:
renderin classBaseShader- Parameters:
renderable- The renderable to render, all required fields (e.g.Renderable.materialand others) must be set. TheRenderable.shaderfield will be ignored.
-
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.- Specified by:
endin interfaceShader- Overrides:
endin classBaseShader
-
bindMaterial
protected void bindMaterial(Renderable renderable)
-
dispose
public void dispose()
Description copied from interface:DisposableReleases all resources of this object.- Specified by:
disposein interfaceDisposable- Overrides:
disposein classBaseShader
-
getDefaultCullFace
public int getDefaultCullFace()
-
setDefaultCullFace
public void setDefaultCullFace(int cullFace)
-
getDefaultDepthFunc
public int getDefaultDepthFunc()
-
setDefaultDepthFunc
public void setDefaultDepthFunc(int depthFunc)
-
-