Hi Marc,
Here is the answer to your questions.
Did you clean-up the graph until the scan time fitted and found in this way the problems with lines and arcs?
No, I set a breakpoint in exit() in the debugger to catch the exception and looked at the backtrace and the current clip rectangle.
In which file did you optimize the connection drawing?
In xtt/lib/glow/gtk/glow_draw_gtk.cpp. This is the interface to gtk where all the low level drawing of lines, arcs, polygons are performed.
Is this a general bug for all releases?
The redrawing mechanism is the the same for all releases since V3.9.
what do you mean with "part of connections but actually not inside the current clip"
When for example an indicator changes color and is redrawn, you don't want to redraw the whole graph, so you set a clip rectangle around it that ensures that only pixels inside the clip are modified. As you don't know the shape of the indicator you also have to redraw the background and actually every component that is visible inside the clip rectangle. The extension of a component is defined by a rectangle, and for a connection this can be very large although the real area of the connection is quite small, So even if the real area of the connection doesn't cover the clip, the extension rectangle might do so, and the connection will be redrawn. Especially long connections and value fields that are updated every scan is in a bad combination as this will lead to lots of redrawing of connections. What I did was to not only look at the extension rectangle of the whole connection, but also of the extension of the individual lines and arcs that the connection is built of to see if they cover the clip rectangle and should be redrawn or not.
And last but not least how are graphs related/compatible to updates?
Usually graphs are both backward and forward compatible, although you will get some error messages if you open a graphs created in a later versions. There where some versions when major revisions where made, 3.9 and 4.5 I think, that are not compatible.
/Claes