← Back to team overview

kicad-developers team mailing list archive

Re: GetBoundingBox and redrawing / XOR-Artifacts /

 

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

eeschema/eeredraw.cpp's

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


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.

Jonas


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.


Dick









Follow ups

References