@awayjs/stage
Version:
Stage for AwayJS
53 lines (52 loc) • 1.72 kB
JavaScript
/**
* A single register element (an entire register or a single register's component) used by the RegisterPool.
*/
var ShaderRegisterElement = /** @class */ (function () {
/**
* Creates a new ShaderRegisterElement object.
*
* @param regName The name of the register.
* @param index The index of the register.
* @param component The register's component, if not the entire register is represented.
*/
function ShaderRegisterElement(regName, index, component) {
if (component === void 0) { component = -1; }
this._component = component;
this._regName = regName;
this._index = index;
this._toStr = this._regName;
if (this._index >= 0)
this._toStr += this._index;
if (component > -1)
this._toStr += '.' + ShaderRegisterElement.COMPONENTS[component];
}
/**
* Converts the register or the components AGAL string representation.
*/
ShaderRegisterElement.prototype.toString = function () {
return this._toStr;
};
Object.defineProperty(ShaderRegisterElement.prototype, "regName", {
/**
* The register's name.
*/
get: function () {
return this._regName;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ShaderRegisterElement.prototype, "index", {
/**
* The register's index.
*/
get: function () {
return this._index;
},
enumerable: false,
configurable: true
});
ShaderRegisterElement.COMPONENTS = ['x', 'y', 'z', 'w'];
return ShaderRegisterElement;
}());
export { ShaderRegisterElement };