@lightningjs/renderer
Version:
Lightning 3 Renderer
37 lines • 982 B
JavaScript
/**
* Shader Controller Class
*
* @remarks
* This class is used to control shader props.
*/
export class ShaderController {
type;
shader;
resolvedProps;
props;
constructor(type, shader, props, stage) {
this.type = type;
this.shader = shader;
this.resolvedProps = props;
const keys = Object.keys(props);
const l = keys.length;
const definedProps = {};
for (let i = 0; i < l; i++) {
const name = keys[i];
Object.defineProperty(definedProps, name, {
get: () => {
return this.resolvedProps[name];
},
set: (value) => {
this.resolvedProps[name] = value;
stage.requestRender();
},
});
}
this.props = definedProps;
}
getResolvedProps() {
return this.resolvedProps;
}
}
//# sourceMappingURL=ShaderController.js.map