Package gaiasky.util.gdx.shader
Class ShaderProgramProvider
java.lang.Object
com.badlogic.gdx.assets.loaders.AssetLoader<T,P>
com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader<ExtShaderProgram,ShaderProgramProvider.ShaderProgramParameter>
gaiasky.util.gdx.shader.ShaderProgramProvider
public class ShaderProgramProvider
extends com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader<ExtShaderProgram,ShaderProgramProvider.ShaderProgramParameter>
AssetLoader
for ExtShaderProgram
instances loaded from text files. If the file suffix is ".vert", it is assumed
to be a vertex shader, and a fragment shader is found using the same file name with a ".frag" suffix. And vice versa if the
file suffix is ".frag". These default suffixes can be changed in the ShaderProgramLoader constructor.
For all other file suffixes, the same file is used for both (and therefore should internally distinguish between the programs
using preprocessor directives and ExtShaderProgram.prependVertexCode
and ExtShaderProgram.prependFragmentCode
).
The above default behavior for finding the files can be overridden by explicitly setting the file names in a
ShaderProgramProvider.ShaderProgramParameter
. The parameter can also be used to prepend code to the programs.
-
Nested Class Summary
-
Constructor Summary
ConstructorDescriptionShaderProgramProvider(com.badlogic.gdx.assets.loaders.FileHandleResolver resolver)
ShaderProgramProvider(com.badlogic.gdx.assets.loaders.FileHandleResolver resolver, String vertexFileSuffix, String fragmentFileSuffix)
-
Method Summary
Modifier and TypeMethodDescriptioncom.badlogic.gdx.utils.Array<com.badlogic.gdx.assets.AssetDescriptor>
getDependencies(String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)
static String
getShaderCode(String prefix, String code)
void
loadAsync(com.badlogic.gdx.assets.AssetManager manager, String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)
loadSync(com.badlogic.gdx.assets.AssetManager manager, String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)
Methods inherited from class com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader
unloadAsync
Methods inherited from class com.badlogic.gdx.assets.loaders.AssetLoader
resolve
-
Constructor Details
-
ShaderProgramProvider
public ShaderProgramProvider(com.badlogic.gdx.assets.loaders.FileHandleResolver resolver) -
ShaderProgramProvider
-
-
Method Details
-
getDependencies
public com.badlogic.gdx.utils.Array<com.badlogic.gdx.assets.AssetDescriptor> getDependencies(String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)- Specified by:
getDependencies
in classcom.badlogic.gdx.assets.loaders.AssetLoader<ExtShaderProgram,ShaderProgramProvider.ShaderProgramParameter>
-
loadAsync
public void loadAsync(com.badlogic.gdx.assets.AssetManager manager, String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)- Specified by:
loadAsync
in classcom.badlogic.gdx.assets.loaders.AsynchronousAssetLoader<ExtShaderProgram,ShaderProgramProvider.ShaderProgramParameter>
-
loadSync
public ExtShaderProgram loadSync(com.badlogic.gdx.assets.AssetManager manager, String fileName, com.badlogic.gdx.files.FileHandle file, ShaderProgramProvider.ShaderProgramParameter parameter)- Specified by:
loadSync
in classcom.badlogic.gdx.assets.loaders.AsynchronousAssetLoader<ExtShaderProgram,ShaderProgramProvider.ShaderProgramParameter>
-
getShaderCode
-