← Back to team overview

kicad-developers team mailing list archive

Erasing Tracks without XOR Remnants

 

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)


Thanks,

Dick








Follow ups