Sprites.Media.Shader.Layer

The Layer window shows and edits the one selected layer: its name, its visible flag, its GLSL code and its own parameters. A layer is { name, visible, code, params }, and the window binds the fields of a two-way selected-layer value, so an edit here lays the whole layer back into the layers list. The code box is the generic Sprites.Ui.Code editor, and the layer's parameter list reuses Sprites.Media.Shader.Params. The stack of layers, with add, reorder and delete, is the separate Sprites.Media.Shader.Layers window.

Sprites.Media.Shader.Layer

Sprites.Media.Shader.Layer.Window Void

Sprites.Media.Shader.Layer.Window(visible, selectedLayer)

The Layer window. visible shows it while true; selectedLayer is the two-way selected layer. It fills as a scrolling column: the name and visible row, a labelled code editor, and the layer's own parameter list. The window owns its live rect, so it keeps its dragged corner and size across a close and reopen.

InputTypeDescription
visibleSprites.Reactive.ValueThe two-way flag that shows the window while true.
selectedLayerSprites.Reactive.ValueThe two-way selected layer whose fields the window edits.

Returns nothing.

const data = Sprites.Media.Shader.NewDocument(256, 256);
const layers = Sprites.Object.Field(data, 'layers');
const count = Sprites.Array.Length(layers);
const last = Sprites.Maths.Subtract(count, 1);
const selectedIndex = Sprites.Reactive.Value(0);
const layerIndex = Sprites.Maths.Clamp(selectedIndex, 0, last);
const selected = Sprites.Media.Shader.SelectedLayer(data, layerIndex);
const visible = Sprites.Reactive.Value(false);
Sprites.Ui.Button.SetValue(visible, true, 'Show Layer window');
Sprites.Media.Shader.Layer.Window(visible, selected);
The Layer window over the selected layer; edit its name, visible flag, code or parameters, and the whole layer lays back into the list.

Sprites.Media.Shader.Layer.Head Void

Sprites.Media.Shader.Layer.Head(selectedLayer)

The name and visible row: a labelled text field for the layer name and a visible checkbox. selectedLayer is the two-way selected layer; its name and visible fields write straight back.

InputTypeDescription
selectedLayerSprites.Reactive.ValueThe two-way selected layer whose name and visible fields this row edits.

Returns nothing.

Sprites.Media.Shader.Layer.Head(selected);