← Back to team overview

kicad-developers team mailing list archive

Re: eeschema WX_OVERLAY/OSX rework to fix redraw artifacts

 

Hi Wayne,

is Windows using WX_OVERLAY?
I didn’t think so… but I never looked for that.

The extra redraw events are only generated in case of WX_OVERLAY, which I thought is only used for OSX.
The only part of the changes that are not inside some WX_OVERLAY #ifdef's are the changes from XOR-mode to DEFAULT mode in drawing some things (rev. 5203 in my branch).
This, however, should have no side-effect otherwise I guess it wouldn’t have worked before?

Your screenshot very much looks like the one Nick mentioned recently:
  https://launchpadlibrarian.net/187456875/kicadBug.png

Are you sure that you see these artifacts only with my changes?


Regards,
Bernhard

On 16.11.2014, at 15:08, Wayne Stambaugh <stambaughw@xxxxxxxxxxx> wrote:

> Hey Bernhard,
> 
> I just finished building and testing your changes.  Something has
> definitely changed in the rendering.  I get a lot of redraw artifacts
> (see screen shots) with your changes that I do not get with the current
> product branch.  It's possible that some extra refresh events are
> occurring that are causing the problem.  I still have to test this on
> Linux as well but I am reluctant to merge your changes until we can
> resolve the windows rendering issue.
> 
> Wayne
> 
> On 11/16/2014 7:43 AM, Bernhard Stegmaier wrote:
>> Hi Wayne,
>> 
>> yes, it was behind that changes.
>> Updated to 5288.
>> 
>> 
>> Thanks,
>> Bernhard
>> 
>>> On 16.11.2014, at 02:10, Wayne Stambaugh <stambaughw@xxxxxxxxxxx> wrote:
>>> 
>>> On 11/15/2014 11:13 AM, Bernhard Stegmaier wrote:
>>>> Hi all,
>>>> 
>>>> eeschema still has some not so bad but nevertheless annoying redraw bugs on OS X (using WX_OVERLAY), e.g., doing a rotate during a move.
>>>> 
>>>> In the branch
>>>> lp:~stegmaier/kicad/kicad-eeredraw
>>>> https://code.launchpad.net/~stegmaier/kicad/kicad-eeredraw
>>>> I reworked current WX_OVERLAY handling to fix this (this branch does not contain any other changes).
>>>> 
>>>> The general idea of the rework is that the drawing code wants to draw some item if the drawing mode is DEFAULT. If the drawing code wants to remove an item it uses XOR mode. This is nothing new, it is done that way at many places but not consistently in all spots.
>>>> For WX_OVERLAY if some item is to be removed a complete redraw is triggered (this might not be the most smart approach, but the easiest one and I did not see any real big performance impact).
>>>> 
>>>> Rework consists of 3 parts:
>>>> (1) Remove different WX_OVERLAY specific fixes/workaround being not consistently used (rev. 5202).
>>>> (2) Only when WX_OVERLAY is being used: push down the remove/repaint check to all draw methods (rev. 5201).
>>>> (3) Change drawing mode consistently to use DEFAULT for drawing and XOR for removing an item (rev. 5203).
>>>> 
>>>> I have tested the changes quite some while on OS X and did not notice any redraw artifacts any longer.
>>>> 
>>>> Since part (3) also affects other platforms, changes have to be tested not only on OS X. 
>>>> However, there should be no change in behavior on platform not using WX_OVERLAY (in theory).
>>>> 
>>>> It would be great if this could get merged to main branch.
>>>> 
>>>> 
>>>> Regards,
>>>> Bernhard
>>>> 
>>> 
>>> Bernhard,
>>> 
>>> Please sync this branch with the latest product branch so I can build
>>> and test it on windows.  I'm getting the Boost 1.57 avhttp build error
>>> so you must be a few revision behind.
>>> 
>>> Thanks,
>>> 
>>> Wayne
>>> 
>>> 
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>> 
>> 
> 
> <osx-render-fix-branch.png><product-branch.png>_______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp



Follow ups

References