annotate doodle/dia/layer_stack.d @ 136:752676232e4b

Port to GtkD-2.0 (gtk+3)
author David Bryant <bagnose@gmail.com>
date Wed, 26 Sep 2012 17:36:31 +0930
parents bc5baa585b32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
1 module doodle.dia.layer_stack;
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
2
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
3 public {
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
4 import doodle.dia.icanvas;
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
5 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
6
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
7 final class LayerStack {
129
10ad5417bf07 Checkpoint
David Bryant <bagnose@gmail.com>
parents: 100
diff changeset
8 this(Layer[] layers) {
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
9 _layers = layers.dup;
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
10 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
11
132
bc5baa585b32 Updated to dmd 2.060
David Bryant <bagnose@gmail.com>
parents: 129
diff changeset
12 @property Rectangle bounds() const {
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
13 // Take the union of all layer bounds
100
a274d16ab6ce struct initialisers
David Bryant <bagnose@gmail.com>
parents: 92
diff changeset
14 Rectangle bounds;
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
15 foreach (layer; _layers) { bounds = bounds | layer.bounds; }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
16 return bounds;
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
17 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
18
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
19 void draw(in Rectangle screenDamage, scope Renderer screenRenderer,
136
752676232e4b Port to GtkD-2.0 (gtk+3)
David Bryant <bagnose@gmail.com>
parents: 132
diff changeset
20 in Rectangle modelDamage, scope Renderer modelRenderer,
89
467febed7367 * Ignore excre
David Bryant <bagnose@gmail.com>
parents: 88
diff changeset
21 in ScreenModel screenModel) const {
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
22 foreach(layer; _layers) {
89
467febed7367 * Ignore excre
David Bryant <bagnose@gmail.com>
parents: 88
diff changeset
23 layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer, screenModel);
74
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
24 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
25 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
26
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
27 private {
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
28 Layer[] _layers;
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
29 }
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
30 }