Mercurial > projects > doodle
comparison doodle/fig/diagram_layer.d @ 54:30ecedfe2ce2
Partial palette support
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 21:07:47 +0930 |
parents | doodle/fig/fig_layer.d@1b4c9ba58673 |
children | 9960c4fbd0dd |
comparison
equal
deleted
inserted
replaced
53:fbabd1957c89 | 54:30ecedfe2ce2 |
---|---|
1 module doodle.fig.diagram_layer; | |
2 | |
3 public { | |
4 import doodle.dia.icanvas; | |
5 import doodle.fig.diagram_elements; | |
6 import std.array; | |
7 } | |
8 | |
9 class DiagramLayer : Layer { | |
10 this(in string name) { | |
11 super(name); | |
12 } | |
13 | |
14 void add(DiagramElement element) { | |
15 _elements ~= element; | |
16 } | |
17 | |
18 // Layer overrides: | |
19 | |
20 override Rectangle bounds() const { | |
21 return Rectangle.DEFAULT; | |
22 } | |
23 | |
24 override void draw(in Viewport viewport, | |
25 in Rectangle pixelDamage, scope Context pixelCr, | |
26 in Rectangle modelDamage, scope Context modelCr) const { | |
27 foreach (e; _elements) { | |
28 if ((e.bounds & modelDamage).valid) { | |
29 e.draw(modelDamage, modelCr); | |
30 } | |
31 } | |
32 } | |
33 | |
34 private { | |
35 // Root elements in z-buffer order, ie we draw in forward | |
36 // order thru the array | |
37 DiagramElement[] _elements; | |
38 } | |
39 } |