kicad-developers team mailing list archive
Mailing list archive
Re: Erasing Tracks without XOR Remnants
Dick Hollenbeck <dick@...>
Wed, 05 Mar 2008 05:45:11 -0600
Thunderbird 188.8.131.52 (X11/20080227)
This will be up to the implementor. I would not be in favor of
maintaining two strategies, it would clutter the code. A $200 computer
from Walmart is probably fast enough, but I am guessing.
I like your idea, todayś machines are fast and we should use it!
BUT this should be an option, maybe compile time if not possible to be
run time. Not every on has fast machines...
I am particularly plagued with dirt on the screen specialy from the
cursor (and in eeschema) (I am using Linux)
PS: please inform when SVN has a good version for testing...
We are at step 1) below. Guesses are not as helpful as actual tests.
Dick Hollenbeck escreveu:
I have checked in an experimental patch for deleting a track
*segment*. It is implemented in just 4 lines or so, and it makes it so
that when deleting a "track segment" there is a clean drawing of the
screen afterwards. The prior technique, a 1980's technique of XORing
of the screen might have made sense when computers were not as fast.
Now I'd like to know if this improves deleting segments (only segments,
not entire tracks) and does not lead to intolerable delays redrawing the
If this is ok, then we should look for a volunteer to go through all the
track deleting code and possibly module delete code and propagate this
idea elsewhere. The idea is this, instead of XORing the old item being
erased from the screen, you simply redraw the entire screen.
I think this is a good project for a new developer to jump in and get
immediate impact into the project. So I would be looking for a
volunteer to do this, provided there is near unanimous agreement that
this change in strategy is a good thing. Note that the strategy I am
talking about does not include "dragging" objects on screen. In the
dragging cases, the XOR technique will probably remain best. However
at end of drag, the entire screen should probably be redrawn.
See the lines at or near line 122 in file pcbnew/deltrack.cpp as the
sample. So to summarize:
1) Test this patch, make sure it is fast enough, cast your vote then.
2) Look for other areas to implement the idea (with modified code as
appropriate): delete entire track, delete entire net, delete module,
etc. No dragging.
3) Get a volunteer to do 2)