ShaderAsset

EntityAssetceramic.ShaderAsset (Class)

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

emitShaderChange(current: Shader, previous: Shader): Void

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()