public class ShaderProgramLoader extends AsynchronousAssetLoader<ShaderProgram,ShaderProgramLoader.ShaderProgramParameter>
AssetLoader
for ShaderProgram
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 ShaderProgram.prependVertexCode
and ShaderProgram.prependFragmentCode
).
The above default behavior for finding the files can be overridden by explicitly setting the file names in a
ShaderProgramLoader.ShaderProgramParameter
. The parameter can also be used to prepend code to the programs.
Modifier and Type | Class and Description |
---|---|
static class |
ShaderProgramLoader.ShaderProgramParameter |
Constructor and Description |
---|
ShaderProgramLoader(FileHandleResolver resolver) |
ShaderProgramLoader(FileHandleResolver resolver,
String vertexFileSuffix,
String fragmentFileSuffix) |
Modifier and Type | Method and Description |
---|---|
Array<AssetDescriptor> |
getDependencies(String fileName,
FileHandle file,
ShaderProgramLoader.ShaderProgramParameter parameter)
Returns the assets this asset requires to be loaded first.
|
void |
loadAsync(AssetManager manager,
String fileName,
FileHandle file,
ShaderProgramLoader.ShaderProgramParameter parameter)
Loads the non-OpenGL part of the asset and injects any dependencies of the asset into the AssetManager.
|
ShaderProgram |
loadSync(AssetManager manager,
String fileName,
FileHandle file,
ShaderProgramLoader.ShaderProgramParameter parameter)
Loads the OpenGL part of the asset.
|
unloadAsync
resolve
public ShaderProgramLoader(FileHandleResolver resolver)
public ShaderProgramLoader(FileHandleResolver resolver, String vertexFileSuffix, String fragmentFileSuffix)
public Array<AssetDescriptor> getDependencies(String fileName, FileHandle file, ShaderProgramLoader.ShaderProgramParameter parameter)
AssetLoader
getDependencies
in class AssetLoader<ShaderProgram,ShaderProgramLoader.ShaderProgramParameter>
fileName
- name of the asset to loadfile
- the resolved file to loadparameter
- parameters for loading the assetpublic void loadAsync(AssetManager manager, String fileName, FileHandle file, ShaderProgramLoader.ShaderProgramParameter parameter)
AsynchronousAssetLoader
loadAsync
in class AsynchronousAssetLoader<ShaderProgram,ShaderProgramLoader.ShaderProgramParameter>
fileName
- the name of the asset to loadfile
- the resolved file to loadparameter
- the parameters to use for loading the assetpublic ShaderProgram loadSync(AssetManager manager, String fileName, FileHandle file, ShaderProgramLoader.ShaderProgramParameter parameter)
AsynchronousAssetLoader
loadSync
in class AsynchronousAssetLoader<ShaderProgram,ShaderProgramLoader.ShaderProgramParameter>
file
- the resolved file to loadCopyright © 2020. All rights reserved.