annotate doodle/tk/renderer.d @ 84:cdd4fc728d94

Renamed Drawable to Renderer
author daveb
date Mon, 16 Aug 2010 17:23:09 +0930
parents doodle/tk/drawable.d@b759414d2b72
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
1 module doodle.tk.renderer;
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
2
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
3 public {
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
4 import doodle.tk.geometry;
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
5 import doodle.tk.color;
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
6 }
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
7
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
8 interface Renderer {
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
9 enum LineStyle {
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
10 SOLID,
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
11 DASHED,
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
12 DOTTED
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
13 }
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
14
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
15 enum FontFace {
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
16 NORMAL
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
17 }
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
18
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
19 // Low-level state manipulation
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
20
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
21 void setLineStyle(LineStyle style);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
22 void setLineWidth(in double width);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
23 void setColor(in Color color);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
24
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
25 void translate(in Point p);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
26 void scale(in double s);
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
27
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
28 void pushState(); // Copies all of current state
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
29 void popState(); // Restores all of previous state
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
30
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
31 // High-level drawing routines
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
32
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
33 void drawRectangle(in Rectangle rectangle, bool fill);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
34 void drawEllipse(in Rectangle rectangle, bool fill);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
35 void drawSegment(in Segment segment);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
36 void drawHLine(in double y, in double x0, in double x1);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
37 void drawVLine(in double x, in double y0, in double y1);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
38 void drawPoly(in Point[] points, bool fill);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
39
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
40 // Text routines
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
41
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
42 void setFontFace(in FontFace face);
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
43 void setFontSize(in double size);
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
44 void drawText(in string text);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
45
79
535bae7a7305 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 78
diff changeset
46 void measureText(in string text, out Rectangle logicalBounds, out Rectangle totalBounds) const;
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
47 }