Mercurial > projects > doodle
diff doodle/dia/grid_layer.d @ 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 | cdd4fc728d94 |
children | 885914257e0e |
line wrap: on
line diff
--- 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();