← Back to team overview

kicad-developers team mailing list archive

USE_WX_ZOOM update.


I am pretty much done removing USE_WX_ZOOM and all of the unused code
associated with it's removal.  Normally I would just commit this code but as it
is such a large change with potential for rendering issues, I want to get some
input before I commit the changes.

Here is the short list of the changes:

* All occurrences if #ifdef USE_WX_ZOOM are gone as well as any associated code
within the #else/#endif block ( old zoom code ).

* Removed the build option for USE_WX_ZOOM from CMakeList.txt.

* All scaling code in base screen object removed.

* Fixed buffered paint and buffered client DC on Windows.  Buffering works
properly on Linux and windows.  Needs tested on OSX.

* Modified kicad_device_context.h to automatically use buffering on platforms
where double buffering is supported natively.

* All of the scaled versions of the drawing functions in gr_basic.cpp are gone
as well as any support code.

* ActiveScreen global variable completely removed from eeschema and gerbview.

* The number of function calls has been cut at least in half by removing the
scaling in gr_basic.cpp which should yield a minor performance improvement.

Currently buffering cannot be used to draw in the client area except when
redrawing the entire visible area.  This due to the way objects such as lines
and arcs are drawn during editing by XORing over top of the current item and
redrawing it in the new position without redrawing the background.  I have
implemented this by using the current INSTALL_DC in the Recadre_Trace()
(renamed RedrawScreen )method in zoom.cpp and created an unbuffered version of
the macro INSTALL_UNBUFFERED_DC for drawing everywhere else.

There may be some corner cases where the drawing doesn't always work properly
that I missed.  Is there any reason why I shouldn't commit this code?  If there
are objections, I could put my repo on launchpad or create a patch so that
everyone can take a look at it.

Let me know what you think.


Follow ups