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: ShaderThe loaded Shader instance. Observable property that updates when the shader is loaded or reloaded. Null until the asset is successfully loaded.
invalidateShader(): Voidload(): VoidLoad 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(): Voidnew(name: String, ?variant: String, ?options: Null<AssetOptions>): VoidCreate 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: ShaderEvent 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() |