UNPKG

@pixi/core

Version:
64 lines (61 loc) 1.83 kB
import { ExtensionType, extensions } from '@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: ExtensionType.RendererSystem, name: "objectRenderer" }; extensions.add(ObjectRendererSystem); export { ObjectRendererSystem }; //# sourceMappingURL=ObjectRendererSystem.mjs.map