74
|
1 module doodle.dia.layer_stack;
|
|
2
|
|
3 public {
|
|
4 import doodle.dia.icanvas;
|
|
5 }
|
|
6
|
|
7 final class LayerStack {
|
|
8 this(in Layer[] layers) {
|
|
9 _layers = layers.dup;
|
|
10 }
|
|
11
|
|
12 Rectangle bounds() const {
|
|
13 // Take the union of all layer bounds
|
|
14 Rectangle bounds = Rectangle.DEFAULT;
|
|
15 foreach (layer; _layers) { bounds = bounds | layer.bounds; }
|
|
16 return bounds;
|
|
17 }
|
|
18
|
84
|
19 void draw(in Rectangle screenDamage, scope Renderer screenRenderer,
|
89
|
20 in Rectangle modelDamage, scope Renderer modelRenderer,
|
|
21 in ScreenModel screenModel) const {
|
74
|
22 foreach(layer; _layers) {
|
89
|
23 layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer, screenModel);
|
74
|
24 }
|
|
25 }
|
|
26
|
|
27 private {
|
|
28 Layer[] _layers;
|
|
29 }
|
|
30 }
|