Mercurial > projects > doodle
changeset 89:467febed7367
* Ignore excre
* Some tentative work in grid_layer.d
* Give the ScreenModel to all the layers. This needs refinement.
* A stroke wouldn't hurt occasionally in cairo_renderer.d
author | David Bryant <bagnose@gmail.com> |
---|---|
date | Thu, 19 Aug 2010 00:19:42 +0930 |
parents | 100dd23c7bdf |
children | 885914257e0e |
files | builder.d doodle/dia/grid_layer.d doodle/dia/icanvas.d doodle/dia/layer_stack.d doodle/dia/page_layer.d doodle/dia/tool_layer.d doodle/fig/diagram_layer.d doodle/gtk/cairo_canvas.d doodle/gtk/cairo_renderer.d |
diffstat | 9 files changed, 38 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/builder.d Wed Aug 18 23:51:43 2010 +0930 +++ b/builder.d Thu Aug 19 00:19:42 2010 +0930 @@ -944,6 +944,10 @@ void load(string path) { //writefln("loading bundle from %s", path); + if (path == "What?/excre") { // + return; + } + // add path to Global for use when compiling Global.bundlePaths ~= path; Global.optionsPath = path.join("options");
--- a/doodle/dia/grid_layer.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/dia/grid_layer.d Thu Aug 19 00:19:42 2010 +0930 @@ -6,6 +6,7 @@ private { import std.math; + import std.stdio; } private { @@ -31,13 +32,26 @@ } override void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) const { - /+ + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const { assert(_zoomValid); - double xx = 1.0, yy = 1.0; - modelCr.userToDeviceDistance(xx, yy); + auto z = screenModel.zoom; + // Is _zoom like screenModel.zoom ? + + modelRenderer.pushState; { + modelRenderer.setColor(Color(0.0, 0.0, 0.0, 0.3)); + auto x = start(modelDamage.corner0.x, _spacing); + for (;;) { + writefln("Doing something %s", x); + modelRenderer.drawVLine(x, modelDamage.corner0.y, modelDamage.corner1.y); + x += _spacing; + if (x > modelDamage.corner1.x) break; + } + } modelRenderer.popState; + +/+ modelCr.save(); { modelCr.setSourceRgba(0.0, 0.0, 0.0, 0.3); modelCr.setLineWidth(0.5); @@ -52,7 +66,7 @@ // Ensure 1 pixel wide FIXME is this naughty? We are sneaking // through cairo to mix model and pixel coordinates... modelCr.save(); { - modelCr.scale(1.0 / xx, 1.0 / yy); + modelCr.scale(1.0 / z, 1.0 / z); modelCr.stroke(); } modelCr.restore();
--- a/doodle/dia/icanvas.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/dia/icanvas.d Thu Aug 19 00:19:42 2010 +0930 @@ -4,6 +4,7 @@ import doodle.tk.geometry; import doodle.tk.events; import doodle.tk.renderer; + import doodle.tk.screen_model; } private { @@ -68,7 +69,8 @@ Rectangle bounds() const; void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) const; + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const; private { immutable string _name;
--- a/doodle/dia/layer_stack.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/dia/layer_stack.d Thu Aug 19 00:19:42 2010 +0930 @@ -18,9 +18,10 @@ } void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) { + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const { foreach(layer; _layers) { - layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer); + layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer, screenModel); } }
--- a/doodle/dia/page_layer.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/dia/page_layer.d Thu Aug 19 00:19:42 2010 +0930 @@ -21,7 +21,8 @@ } override void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) const { + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const { // Make the paper white, with a border modelRenderer.pushState; {
--- a/doodle/dia/tool_layer.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/dia/tool_layer.d Thu Aug 19 00:19:42 2010 +0930 @@ -40,7 +40,8 @@ } override void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) const { + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const { if (_grabbedTool) { _grabbedTool.draw(screenDamage, screenRenderer); }
--- a/doodle/fig/diagram_layer.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/fig/diagram_layer.d Thu Aug 19 00:19:42 2010 +0930 @@ -24,7 +24,8 @@ } override void draw(in Rectangle screenDamage, scope Renderer screenRenderer, - in Rectangle modelDamage, scope Renderer modelRenderer) const { + in Rectangle modelDamage, scope Renderer modelRenderer, + in ScreenModel screenModel) const { foreach (e; _elements) { if ((e.bounds & modelDamage).valid) { e.draw(modelDamage, modelRenderer);
--- a/doodle/gtk/cairo_canvas.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/gtk/cairo_canvas.d Thu Aug 19 00:19:42 2010 +0930 @@ -249,7 +249,8 @@ } screenCr.restore; _layerStack.draw(screenDamage, new CairoRenderer(screenCr), - modelDamage, new CairoRenderer(modelCr)); + modelDamage, new CairoRenderer(modelCr), + _screenModel); } screenCr.restore; modelCr.restore; return true;
--- a/doodle/gtk/cairo_renderer.d Wed Aug 18 23:51:43 2010 +0930 +++ b/doodle/gtk/cairo_renderer.d Thu Aug 19 00:19:42 2010 +0930 @@ -64,6 +64,7 @@ void drawVLine(in double x, in double y0, in double y1) { _cr.moveTo(x, y0); _cr.lineTo(x, y1); + _cr.stroke; } void drawPoly(in Point[] points, bool fill = false) {