← Back to team overview

kicad-developers team mailing list archive

Re: Erasing Tracks without XOR Remnants


Dick Hollenbeck escreveu:

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.

Hum..., I believe a pool of some kind would be interesting.

IMHO there could be a limit, say "old" machines can be limited to 500MHz Pentium II. Unfortunatly, I don't have such machines for testing. Also this will need a compiled package, whick will probably mean windows
:( :(

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.

What I mean is not a full version, but a "testable" version, ie. a SVN version that has few bugs, and new things like magnetic routing working ok.

I already had trouble with buggy SVN versions. As kicad is a big project, figuring aout if the bug is in my environment or in the source can spend more time than possible at the moment.



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

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)



Follow ups