On Fri, Nov 26, 2010 at 11:30 PM, Peter Clifton <pc...@cam.ac.uk> wrote:
> How to you get it to draw updates as the auto-router progresses? Actually, I disable draw updates during each individual run of the autorouter using the usual LIVEROUTEFLAG + HID_LIVE_DRAWING mechanism. I only update the display when a superior routing result arrives - so display updates are often minutes apart. I update the display from my high effort code in action.c by calling: DeleteRats (false /*all rats */ ); AddAllRats (false /*all rats */ , NULL); ClearAndRedrawOutput (); I also added an extra parameter to the autorouters to conditonally avoid refreshing the rats at the conclusion of each pass, as this results in a display update. > PCB's current auto-router does really evil things when you ask it to do > that (drawing without the GUI necessarily being in an appropriate > state). Yes, but at least the autorouter provides an option to disable live updates. The trace optimiser and "rip up all autorouted racks" have no option like this, and they run orders of magnitude slower because of their live display updates. I find myself constantly hiding my copper and via layers - which allows them to run at full speed. > This is something I'll really need to fix before pushing the PCB+GL > code, as we hit _all sorts_ of nasty errors / crashes in various GL > libraries if we try drawing whilst the GL context isn't set up. It would be great to have a uniform mechanism for handling display update disabling/enabling for all parts of the code that make lots of fast changes to the layout (the autorouters, trace optimiser, rip up all tracks, ...) > What I'm saying - is that I'll probably end up breaking whatever method > you use, but if we can cooperate, I'll try and do it in a way which > isn't so hard to fix ;) Great! I'm looking forward to using PCB+GL - particularly transparency :) _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user