ShaderAsset
Asset type for loading GPU shader programs.
Supports loading:
- Combined shader files containing both vertex and fragment shaders
- Separate vertex (.vert) and fragment (.frag) shader files
- Backend-specific shader formats
Features:
- Custom shader attributes support
- Hot reload for shader development
- Automatic pairing of vertex and fragment shaders
- Default vertex shader fallback
var assets = new Assets();
// Load combined shader
assets.addShader('blur');
// Load with custom attributes
assets.addShader('particle', null, {
customAttributes: [
{name: 'aVelocity', size: 2},
{name: 'aLifetime', size: 1}
]
});
assets.load();
var shader = assets.shader('blur');
quad.shader = shader;
Instance Members
shader: Shader
The loaded Shader instance. Observable property that updates when the shader is loaded or reloaded. Null until the asset is successfully loaded.
invalidateShader(): Void
load(): Void
Load the shader program. Handles both combined and separate vertex/fragment shader files. Uses default textured vertex shader if none specified. Emits complete event when finished.
destroy(): Void
new(name: String, ?variant: String, ?options: Null<AssetOptions>): Void
Create a new shader asset.
Name | Type | Default | Description |
---|---|---|---|
name |
String | Shader file name (with or without extension) | |
variant |
String | (optional) | Optional variant suffix |
options |
Null<AssetOptions> | (optional) | Loading options including: - customAttributes: Array of custom vertex attributes - vertId: Specific vertex shader path (for separate files) - fragId: Specific fragment shader path (for separate files) |
Private Members
unobservedShader: Shader
Event when shader field changes.
Name | Type |
---|---|
current |
Shader |
previous |
Shader |
assetFilesDidChange(newFiles: ReadOnlyMap<String, Float>, previousFiles: ReadOnlyMap<String, Float>): Void
Name | Type |
---|---|
newFiles |
ReadOnlyMap<String, Float> |
previousFiles |
ReadOnlyMap<String, Float> |
toString(): String
Returns |
---|
String |
Metadata
Name | Parameters |
---|---|
:build |
tracker.macros.EventsMacro.build() |
:autoBuild |
tracker.macros.EventsMacro.build() |
:build |
ceramic.macros.EntityMacro.buildForCompletion() |
:autoBuild |
ceramic.macros.EntityMacro.buildForCompletion() |
:build |
tracker.macros.ObservableMacro.build() |
:autoBuild |
tracker.macros.ObservableMacro.build() |