X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=TyyQaitMEF1P3Ic5g0ycZ3zOuwRyfeuANlqeLWnbeSo=; b=BwqZnrIhzdr9Ck5jOez083hYknj4WM6849rVMeU1OVWKVfY3e9sQmJaXiahUpKNrGS IBnhk0txpDFpkt5LJ7uQflDi7+pn8q3PxqbVCTHkGaHd8cDYa58N1YrM06+bj+FmdjXe CUrADlCp3c1XckBpTJVOr1a7Ro5QvPItD0PeM1WmX1nCVGWAC15hXfxe2gjXfmrfxuG6 0vNinL/EWvsWFw+4QgDG9CO5MWnSUNLesrfCGJRYtn1v+51WxSvIHb1loqp7CpQcDse1 GNxk4/B+Fp2k2BAYapV9e7DmGroNobd2EPV4EvGU2ds5H3FbWo3holgtXkwWSqeceNqC N8pw== MIME-Version: 1.0 X-Received: by 10.107.9.11 with SMTP id j11mr24171468ioi.191.1441041046673; Mon, 31 Aug 2015 10:10:46 -0700 (PDT) In-Reply-To: <55E47F23.6090702@jump-ing.de> References: <55E47F23 DOT 6090702 AT jump-ing DOT de> Date: Mon, 31 Aug 2015 19:10:46 +0200 Message-ID: Subject: Re: [geda-user] Enable "visible" grid From: "Bernhard Kraft (bkraf0j9 AT gmail DOT com) [via geda-user AT delorie DOT com]" To: geda-user AT delorie DOT com Content-Type: multipart/mixed; boundary=001a113f905ab1c046051e9e83c9 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --001a113f905ab1c046051e9e83c9 Content-Type: text/plain; charset=UTF-8 Hi, I've created a patch for this issue within the non-GL hid - for the GDK hid. See attached patch. When the zoom level yields grid dot distances of more than LARGE_GRID_DOTS (30) then 9 pixels will be drawn for each grid dot instead of just one. But for some reason after applying this patch the grid dots are not in sync anymore with the crosshair at every point. I also changed the algorithm for creating the grid pixels. Instead of drawing them line by line I create an array containing the whole grid dots (x by y) and then draw them all at once. I calculated a maximum memory usage of ~2MB for a full HD display using MINIMUM_GRID_DISTANCE (4). I think this is acceptable for today computers. Using this approach grid drawing could get sped up by storing the previous value of all responsible variables (grid X/Y offset, view width/height, view X/Y offset, etc.). When all values are the same (or a hash of them) the grid does just have to get redrawn from the static points array but all points do not have to get recalculated. greetings, Bernhard --001a113f905ab1c046051e9e83c9 Content-Type: text/x-patch; charset=US-ASCII; name="0001-FEATURE-Draw-larger-grid-dots-3x3-for-high-zoom-leve.patch" Content-Disposition: attachment; filename="0001-FEATURE-Draw-larger-grid-dots-3x3-for-high-zoom-leve.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ie06moro0 RnJvbSA3MTg0ZGU4ZDA0YWNjZTgwZTNhYmU4MTZkYjZmMTUyMmJjMmNhOWIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuaGFyZCBLcmFmdCA8a3JhZnRiQHRoaW5rLW9wZW4uYXQ+ CkRhdGU6IE1vbiwgMzEgQXVnIDIwMTUgMTk6MDQ6MDggKzAyMDAKU3ViamVjdDogW1BBVENIXSBb RkVBVFVSRV0gRHJhdyBsYXJnZXIgZ3JpZCBkb3RzICgzeDMpIGZvciBoaWdoIHpvb20gbGV2ZWxz CgpXaGVuIHVzaW5nIGhpZ2ggem9vbSBmYWN0b3JzIHRoZSBncmlkIGRvdHMgYmVjb21lIHF1aXRl IHNwYXJzZWx5CmRpc3RyaWJ1dGVkIGFuZCBjYW4ndCBiZSBzZWVuIG9uIG1vZGVybiBoaWdoIHJl c29sdXRpb24gZGlzcGxheS4KRHJhdyAzeDMgcGl4ZWwgZ3JpZCBkb3RzIHdoZW4gdGhlIGRpc3Rh bmNlIGJldHdlZW4gdGhlbSBiZWNvbXNlCm1vcmUgdGhhbiBMQVJHRV9HUklEX0RPVFMgcGl4ZWxz LiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBuZXcKY29uc3RhbnQgaXMgc2V0IHRvIDMwLgot LS0KIGdsb2JhbGNvbnN0LmggICAgICAgICAgICB8ICAxICsKIHNyYy9oaWQvZ3RrL2d0a2hpZC1n ZGsuYyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9nbG9iYWxjb25zdC5oIGIvZ2xvYmFsY29uc3QuaAppbmRleCBiOTQwMWJhLi43 ODNmYWZkIDEwMDc1NQotLS0gYS9nbG9iYWxjb25zdC5oCisrKyBiL2dsb2JhbGNvbnN0LmgKQEAg LTEzMiw2ICsxMzIsNyBAQAogI2RlZmluZQlNQVhfTU9ERVNUQUNLX0RFUFRICQkxNgkvKiBtYXhp bXVtIGRlcHRoIG9mIG1vZGUgc3RhY2sgKi8KICNkZWZpbmUJTUFYX0NST1NTSEFJUlNUQUNLX0RF UFRICTE2CS8qIG1heGltdW0gZGVwdGggb2Ygc3RhdGUgc3RhY2sgKi8KICNkZWZpbmUJTUlOX0dS SURfRElTVEFOQ0UJCTQJLyogbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHBvaW50ICovCisjZGVm aW5lCUxBUkdFX0dSSURfRE9UUwkJMzAJLyogbWluaW11bSBkaXN0YW5jZSB0byBzd2l0Y2ggdG8g bGFyZ2UgZ3JpZCBkb3RzICovCiAJCQkJCQkvKiB0byBlbmFibGUgZ3JpZCBkcmF3aW5nICovCiAJ Lyogc2l6ZSBvZiBkaWFtb25kIGVsZW1lbnQgbWFyayAqLwogI2RlZmluZSBFTUFSS19TSVpFCU1J TF9UT19DT09SRCAoMTApCmRpZmYgLS1naXQgYS9zcmMvaGlkL2d0ay9ndGtoaWQtZ2RrLmMgYi9z cmMvaGlkL2d0ay9ndGtoaWQtZ2RrLmMKaW5kZXggZGNhZjI2ZC4uMDFhMDVmNiAxMDA2NDQKLS0t IGEvc3JjL2hpZC9ndGsvZ3RraGlkLWdkay5jCisrKyBiL3NyYy9oaWQvZ3RrL2d0a2hpZC1nZGsu YwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGdoaWRfZHJhd19ncmlkICh2b2lkKQogICBzdGF0aWMgR2Rr UG9pbnQgKnBvaW50cyA9IDA7CiAgIHN0YXRpYyBpbnQgbnBvaW50cyA9IDA7CiAgIENvb3JkIHgx LCB5MSwgeDIsIHkyLCB4LCB5OwotICBpbnQgbiwgaTsKKyAgaW50IG0sIG4sIGksIGosIHBvaW50 c1BlckRvdDsKICAgcmVuZGVyX3ByaXYgKnByaXYgPSBncG9ydC0+cmVuZGVyX3ByaXY7CiAKICAg aWYgKCFTZXR0aW5ncy5EcmF3R3JpZCkKQEAgLTE5MywyNiArMTkzLDU1IEBAIGdoaWRfZHJhd19n cmlkICh2b2lkKQogICAgIHgyIC09IFBDQi0+R3JpZDsKICAgaWYgKFZ5ICh5MikgPj0gZ3BvcnQt PmhlaWdodCkKICAgICB5MiAtPSBQQ0ItPkdyaWQ7Ci0gIG4gPSAoeDIgLSB4MSkgLyBQQ0ItPkdy aWQgKyAxOwotICBpZiAobiA+IG5wb2ludHMpCisKKyAgeCA9ICh4MiAtIHgxKSAvIFBDQi0+R3Jp ZCArIDE7CisgIHkgPSAoeTIgLSB5MSkgLyBQQ0ItPkdyaWQgKyAxOworCisgIC8vIFNwYWNlIGJl dHdlZW4gdHdvIGdyaWQgcG9pbnRzIGluIHBpeGVscy4KKyAgLy8gSWYgbGFyZ2VyIHRoYW4gMzBw eCB0aGVuIHVzZSA5IHBpeGVscyBmb3IgZWFjaCBncmlkIGRvdC4KKyAgaWYgKFZ6IChQQ0ItPkdy aWQpID4gTEFSR0VfR1JJRF9ET1RTKQorICAgIHBvaW50c1BlckRvdCA9IDk7CisgIGVsc2UKKyAg ICBwb2ludHNQZXJEb3QgPSAxOworCisgIC8vIEFsbG9jYXRlIG1lbW9yeSBmb3IgeCp5IGRvdHMu CisgIC8vIEJ5IGRlZmF1bHQgIk1JTl9HUklEX0RJU1RBTkNFIiBpcyA0LiBTbyBmb3IgYSAxOTIw eDEwODAgKEhEKSBkaXNwbGF5IHRoZXJlIHdvdWxkIGJlIGEgbWF4aW11bQorICAvLyBvZiAoMTky MC80ICogMTA4MC80KSBncmlkIGRvdHMuIHBvaW50c1BlckRvdCB3aWxsIG9ubHkgYmVjb21lICIz IiBpZiBncmlkIGRpc3RhbmNlIGlzIGxhcmdlcgorICAvLyB0aGFuICJMQVJHRV9HUklEX0RPVFMi ICgzMCkuIFNvIHRoZSBudW1iZXIgb2YgR2RrUG9pbnRzIGZvciBhIGxhcmdlIHJlc29sdXRpb24g d2lsbCBiZSB+MTMwa0RvdHMKKyAgLy8gRXZlbiBpZiBhICJnaW50IiBpcyA2NGJpdCAoOCBieXRl cykgdGhlIGNvbnN1bWVkIG1lbW9yeSBmb3IgdGhlIGdyaWQgYXJyYXkgd2lsbCBvbmx5IGJlCisg IC8vIDEzMGsgKiA4ICogMiB+PSAyTUIuIFRoaXMgaXMgYWNjZXB0YWJsZSBmb3IgdG9kYXkgY29t cHV0ZXJzLgorICBpZiAoeCp5KnBvaW50c1BlckRvdCA+IG5wb2ludHMpCiAgICAgewotICAgICAg bnBvaW50cyA9IG4gKyAxMDsKLSAgICAgIHBvaW50cyA9IChHZGtQb2ludCAqKXJlYWxsb2MgKHBv aW50cywgbnBvaW50cyAqIHNpemVvZiAoR2RrUG9pbnQpKTsKKyAgICAgIG5wb2ludHMgPSB4Knkg KyAxMDA7CisgICAgICBwb2ludHMgPSAoR2RrUG9pbnQgKilyZWFsbG9jIChwb2ludHMsIHBvaW50 c1BlckRvdCAqIG5wb2ludHMgKiBzaXplb2YgKEdka1BvaW50KSk7CiAgICAgfQorCisgIC8vIFVz ZSB0aGlzIGxpbmUgdG8gZGVidWcKKyAgLy8gZnByaW50ZiAoc3RkZXJyLCAiJXMoKTogZ3JpZCBk aWZmIGluIHBpeGVscyA9ICVkXG4iLCBfX0ZVTkNUSU9OX18sIFZ6IChQQ0ItPkdyaWQpKTsKKwor ICAvLyBHZW5lcmF0ZSBhbGwgZ3JpZCBwb2ludCBwaXhlbHMKICAgbiA9IDA7CiAgIGZvciAoeCA9 IHgxOyB4IDw9IHgyOyB4ICs9IFBDQi0+R3JpZCkKLSAgICB7Ci0gICAgICBwb2ludHNbbl0ueCA9 IFZ4ICh4KTsKLSAgICAgIG4rKzsKLSAgICB9Ci0gIGlmIChuID09IDApCi0gICAgcmV0dXJuOwot ICBmb3IgKHkgPSB5MTsgeSA8PSB5MjsgeSArPSBQQ0ItPkdyaWQpCi0gICAgewotICAgICAgZm9y IChpID0gMDsgaSA8IG47IGkrKykKLQlwb2ludHNbaV0ueSA9IFZ5ICh5KTsKLSAgICAgIGdka19k cmF3X3BvaW50cyAoZ3BvcnQtPmRyYXdhYmxlLCBwcml2LT5ncmlkX2djLCBwb2ludHMsIG4pOwot ICAgIH0KKyAgICBmb3IgKHkgPSB5MTsgeSA8PSB5MjsgeSArPSBQQ0ItPkdyaWQpCisgICAgICB7 CisgICAgICAgIC8vIENlbnRlciBwb2ludAorICAgICAgICBwb2ludHNbbl0ueCA9IFZ4ICh4KTsK KyAgICAgICAgcG9pbnRzW25dLnkgPSBWeSAoeSk7CisgICAgICAgIG0gPSBuOworICAgICAgICBu Kys7CisgICAgICAgIGlmIChwb2ludHNQZXJEb3QgPiAxKQorICAgICAgICAgIGZvcihpID0gLTE7 IGkgPD0gMTsgaSsrKQorICAgICAgICAgICAgZm9yKGogPSAtMTsgaiA8PSAxOyBqKyspCisgICAg ICAgICAgICAgIHsKKwkJCQkJIGlmICghaSAmJiAhaikKKyAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOworICAgICAgICAgICAgICAgIHBvaW50c1tuXS54ID0gcG9pbnRzW21dLnggKyBpOworICAg ICAgICAgICAgICAgIHBvaW50c1tuXS55ID0gcG9pbnRzW21dLnkgKyBqOworICAgICAgICAgICAg ICAgIG4rKzsKKyAgICAgICAgICAgICAgfQorICAgICAgfQorICAvLyBBbmQgZHJhdyB0aGVtCisg IGdka19kcmF3X3BvaW50cyAoZ3BvcnQtPmRyYXdhYmxlLCBwcml2LT5ncmlkX2djLCBwb2ludHMs IG4pOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gKi8KLS0gCjEuOS4xCgo= --001a113f905ab1c046051e9e83c9--