blaze-2d
Version:
A fast and simple WebGL 2 2D game engine written in TypeScript
55 lines • 1.38 kB
JavaScript
import Blaze from "../blaze";
/**
* Handles flush orders of {@link Renderer}s
*/
export default class RenderController {
constructor() {
this.renderers = [];
}
/**
* Flushes all {@link Renderer}s.
*/
flush() {
let min = Blaze.getZLevels();
let max = 0;
for (const r of this.renderers) {
if (r.getQueueMax() > max)
max = r.getQueueMax();
if (r.getQueueMin() < min)
min = r.getQueueMin();
}
for (let z = min; z <= max; z++) {
for (const r of this.renderers) {
r.flush(z);
}
}
}
/**
* Adds a renderer to the controller.
*
* @param renderer The renderer to add
*/
addRenderer(renderer) {
this.renderers.push(renderer);
}
/**
* Adds the given renderers to the controller.
*
* @param renderers The renderers to add
*/
addRenderers(...renderers) {
this.renderers.push(...renderers);
}
/**
* Removes a renderer from the controller.
*
* @param renderer The renderer to remove
*/
removeRenderer(renderer) {
const i = this.renderers.findIndex((r) => r === renderer);
if (i === -1)
return;
this.renderers.splice(i, 1);
}
}
//# sourceMappingURL=controller.js.map