@openhps/core
Version:
Open Hybrid Positioning System - Core component
52 lines (49 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.viewportSharedTexture = exports.default = void 0;
var _ViewportTextureNode = _interopRequireDefault(require("./ViewportTextureNode.js"));
var _TSLBase = require("../tsl/TSLBase.js");
var _ScreenNode = require("./ScreenNode.js");
var _FramebufferTexture = require("../../textures/FramebufferTexture.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let _sharedFramebuffer = null;
/**
* `ViewportTextureNode` creates an internal texture for each node instance. This module
* shares a texture across all instances of `ViewportSharedTextureNode`. It should
* be the first choice when using data of the default/screen framebuffer for performance reasons.
*
* @augments ViewportTextureNode
*/
class ViewportSharedTextureNode extends _ViewportTextureNode.default {
static get type() {
return 'ViewportSharedTextureNode';
}
/**
* Constructs a new viewport shared texture node.
*
* @param {Node} [uvNode=screenUV] - The uv node.
* @param {?Node} [levelNode=null] - The level node.
*/
constructor(uvNode = _ScreenNode.screenUV, levelNode = null) {
if (_sharedFramebuffer === null) {
_sharedFramebuffer = new _FramebufferTexture.FramebufferTexture();
}
super(uvNode, levelNode, _sharedFramebuffer);
}
updateReference() {
return this;
}
}
var _default = exports.default = ViewportSharedTextureNode;
/**
* TSL function for creating a shared viewport texture node.
*
* @tsl
* @function
* @param {?Node} [uvNode=screenUV] - The uv node.
* @param {?Node} [levelNode=null] - The level node.
* @returns {ViewportSharedTextureNode}
*/
const viewportSharedTexture = exports.viewportSharedTexture = /*@__PURE__*/(0, _TSLBase.nodeProxy)(ViewportSharedTextureNode).setParameterLength(0, 2);