kicad-developers team mailing list archive
Mailing list archive
Re: GetBoundingBox and redrawing / XOR-Artifacts /
Dick Hollenbeck <dick@...>
Thu, 03 Apr 2008 15:40:20 -0500
Thunderbird 22.214.171.124 (X11/20080227)
Jonas Diemer wrote:
Am Montag 31 März 2008 22:57:55 schrieb Dick Hollenbeck:
One piece of code that we need to test is the commented out lines in
void RedrawStructList( WinEDA_DrawPanel* panel, wxDC* DC,
EDA_BaseStruct* Structs, int DrawMode, int Color )
This will put the final cap on the redraw optimization. It will also
have the effect of not drawing anything that does not have a proper
GetBoundingBox() that returns a rectangle that intersects with the dirty
rectangle. So it is another way to test that we have all the required
GetBoundingBox implementations in place. Because if not, there will be
parts of the screen that will not get drawn at all with these lines
Jonas, it would be great if you could test these lines!
I just tried these lines, they don't seem to work. At first sight, it looks
like panel->m_ClipBox is too small.
Yes, m_ClipBox, that is likely. One of us will have to compare the
preparation of m_ClipBox between the two software apps, pcbnew and
eeschema. From memory I am drawing a blank, but perhaps that rectangle
is handled differently in one vs. the other. Or maybe the calculation
is the same, but the scaling coefficients used in eeschema are not fully
usable in the same way (at this time). For the compare to be meaningful
the units have to match between object coordinates in the drawing space
and the dirty rect, unfortunately called m_ClipBox here.
If it is something you are interested in and have time for, continue.
Otherwise I will look at it some time in the next few weeks.