www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/08/31/13:10:55

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: <CAGYR9vf=efGQXy7xhh6-PPmv1swo3-42J-d+aLyuso4yHVYZsA AT mail DOT gmail DOT com>
<55E47F23 DOT 6090702 AT jump-ing DOT de>
Date: Mon, 31 Aug 2015 19:10:46 +0200
Message-ID: <CAGYR9vcOrvWwFMHTKaTGZ6cOkSBSRdXwrdeRc7+itX2Z3sp2FQ@mail.gmail.com>
Subject: Re: [geda-user] Enable "visible" grid
From: "Bernhard Kraft (bkraf0j9 AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
To: geda-user AT delorie DOT com
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

--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--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019