@lightningjs/renderer
Version:
Lightning 3 Renderer
47 lines • 1.48 kB
JavaScript
import { UpdateType } from "./CoreNode.js";
export class CoreTexturizer {
node;
enabled = false;
renderTexture = null;
rttRequested = false;
constructor(node) {
this.node = node;
}
enableRenderTexture() {
this.enabled = true;
this.createRenderTexture();
}
createRenderTexture() {
this.unloadRenderTexture();
this.renderTexture = this.node.stage.txManager.createTexture('RenderTexture', {
width: this.node.width,
height: this.node.height,
});
}
loadRenderTexture() {
if (this.renderTexture === null) {
return;
}
if (this.renderTexture.state === 'loaded') {
this.node.stage.renderer.renderToTexture(this.node);
return;
}
this.node.stage.txManager.loadTexture(this.renderTexture, true);
this.renderTexture.once('loaded', () => {
this.node.stage.renderer.renderToTexture(this.node);
this.node.setUpdateType(UpdateType.IsRenderable);
});
this.renderTexture.setRenderableOwner(this, true);
}
unloadRenderTexture() {
if (this.renderTexture !== null) {
this.renderTexture.setRenderableOwner(this, false);
}
this.renderTexture = null;
}
requestRTT() {
this.rttRequested = true;
this.node.setUpdateType(UpdateType.RenderTexture);
}
}
//# sourceMappingURL=CoreTexturizer.js.map