@pixi/core
Version:
Core PixiJS
68 lines (63 loc) • 1.93 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var extensions = require('@pixi/extensions');
class ObjectRendererSystem {
constructor(renderer) {
this.renderer = renderer;
}
render(displayObject, options) {
const renderer = this.renderer;
let renderTexture;
let clear;
let transform;
let skipUpdateTransform;
if (options) {
renderTexture = options.renderTexture;
clear = options.clear;
transform = options.transform;
skipUpdateTransform = options.skipUpdateTransform;
}
this.renderingToScreen = !renderTexture;
renderer.runners.prerender.emit();
renderer.emit("prerender");
renderer.projection.transform = transform;
if (renderer.context.isLost) {
return;
}
if (!renderTexture) {
this.lastObjectRendered = displayObject;
}
if (!skipUpdateTransform) {
const cacheParent = displayObject.enableTempParent();
displayObject.updateTransform();
displayObject.disableTempParent(cacheParent);
}
renderer.renderTexture.bind(renderTexture);
renderer.batch.currentRenderer.start();
if (clear ?? renderer.background.clearBeforeRender) {
renderer.renderTexture.clear();
}
displayObject.render(renderer);
renderer.batch.currentRenderer.flush();
if (renderTexture) {
if (options.blit) {
renderer.framebuffer.blit();
}
renderTexture.baseTexture.update();
}
renderer.runners.postrender.emit();
renderer.projection.transform = null;
renderer.emit("postrender");
}
destroy() {
this.renderer = null;
this.lastObjectRendered = null;
}
}
ObjectRendererSystem.extension = {
type: extensions.ExtensionType.RendererSystem,
name: "objectRenderer"
};
extensions.extensions.add(ObjectRendererSystem);
exports.ObjectRendererSystem = ObjectRendererSystem;
//# sourceMappingURL=ObjectRendererSystem.js.map
;