1 | import { ViewService } from "./Root";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | export const PM_Visible = superclass => class extends superclass {
|
9 |
|
10 | destroy() {
|
11 | super.destroy();
|
12 | const render = this.service("RenderManager");
|
13 | for (const layerName in render.layers) {
|
14 | const layer = render.layers[layerName];
|
15 | if (layer.has(this)) render.dirtyLayer(layerName);
|
16 | render.layers[layerName].delete(this);
|
17 | }
|
18 | }
|
19 |
|
20 | addToLayers(...names) {
|
21 | const render = this.service("RenderManager");
|
22 | names.forEach(name => {
|
23 | if (!render.layers[name]) render.layers[name] = new Set();
|
24 | render.layers[name].add(this);
|
25 | render.dirtyLayer(name);
|
26 | });
|
27 | }
|
28 |
|
29 | removeFromLayers(...names) {
|
30 | const render = this.service("RenderManager");
|
31 | names.forEach(name => {
|
32 | if (!render.layers[name]) return;
|
33 | render.layers[name].delete(this);
|
34 | if (render.layers[name].size === 0) {
|
35 | delete render.layers[name];
|
36 | }
|
37 | render.dirtyLayer(name);
|
38 | });
|
39 | }
|
40 |
|
41 | layers() {
|
42 | let result = [];
|
43 | const render = this.service("RenderManager");
|
44 | for (const layerName in render.layers) {
|
45 | const layer = render.layers[layerName];
|
46 | if (layer.has(this)) result.push(layerName);
|
47 | }
|
48 | return result;
|
49 | }
|
50 | };
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 | export const PM_Camera = superclass => class extends superclass {};
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | export class RenderManager extends ViewService {
|
63 | constructor(options = {}, name) {
|
64 | super(name);
|
65 | this.registerViewName("RenderManager");
|
66 | this.layers = {};
|
67 | }
|
68 |
|
69 | dirtyLayer(name) {}
|
70 |
|
71 | }
|