@pixi/core
Version:
Core PixiJS
35 lines (34 loc) • 1.87 kB
JavaScript
var extensions = require("@pixi/extensions");
class ObjectRendererSystem {
// renderers scene graph!
constructor(renderer) {
this.renderer = renderer;
}
/**
* Renders the object to its WebGL view.
* @param displayObject - The object to be rendered.
* @param options - the options to be passed to the renderer
*/
render(displayObject, options) {
const renderer = this.renderer;
let renderTexture, clear, transform, 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, !renderer.context.isLost) {
if (renderTexture || (this.lastObjectRendered = displayObject), !skipUpdateTransform) {
const cacheParent = displayObject.enableTempParent();
displayObject.updateTransform(), displayObject.disableTempParent(cacheParent);
}
renderer.renderTexture.bind(renderTexture), renderer.batch.currentRenderer.start(), (clear ?? renderer.background.clearBeforeRender) && renderer.renderTexture.clear(), displayObject.render(renderer), renderer.batch.currentRenderer.flush(), renderTexture && (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
;