Fractional bounds and flickering (contains images that may be disturbing to some readers)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Fractional bounds and flickering (contains images that may be disturbing to some readers)

Christoph Thiede

Hi all,


In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:


SystemWindow new openInWorld extent: (24214/31)@(11565/31).


If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:




  • As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
  • The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
  • The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
  • [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?

I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:

  • #position: appears to round the delta value for movement
  • #extent: and #bounds: do no rounding at all.
Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
Or do you have any idea how one could debug the problem?

(For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
)

Looking forward to your help!
Best,
Christoph



Reply | Threaded
Open this post in threaded view
|

Re: Fractional bounds and flickering (contains images that may be disturbing to some readers)

Nicolas Cellier
Hi Christoph,
I cannot reproduce. It seems like bounds soon get rounded in my image:
   
    (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
        781@373

Le mar. 22 oct. 2019 à 13:40, Thiede, Christoph <[hidden email]> a écrit :

Hi all,


In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:


SystemWindow new openInWorld extent: (24214/31)@(11565/31).


If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:




  • As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
  • The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
  • The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
  • [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?

I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:

  • #position: appears to round the delta value for movement
  • #extent: and #bounds: do no rounding at all.
Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
Or do you have any idea how one could debug the problem?

(For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
)

Looking forward to your help!
Best,
Christoph




Reply | Threaded
Open this post in threaded view
|

Re: Fractional bounds and flickering (contains images that may be disturbing to some readers)

Christoph Thiede

Hi Nicolas,


thanks for the insight. On my system, it is not rounded ... I have the latest trunk updates installed.


Von: Squeak-dev <[hidden email]> im Auftrag von Nicolas Cellier <[hidden email]>
Gesendet: Dienstag, 22. Oktober 2019 15:00:27
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
 
Hi Christoph,
I cannot reproduce. It seems like bounds soon get rounded in my image:
   
    (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
        781@373

Le mar. 22 oct. 2019 à 13:40, Thiede, Christoph <[hidden email]> a écrit :

Hi all,


In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:


SystemWindow new openInWorld extent: (24214/31)@(11565/31).


If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:




  • As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
  • The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
  • The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
  • [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?

I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:

  • #position: appears to round the delta value for movement
  • #extent: and #bounds: do no rounding at all.
Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
Or do you have any idea how one could debug the problem?

(For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
)

Looking forward to your help!
Best,
Christoph




Reply | Threaded
Open this post in threaded view
|

Re: Fractional bounds and flickering (contains images that may be disturbing to some readers)

David T. Lewis
I cannot reproduce in my image either. The fractional bounds are
rounded to integer values in Rectangle>>rounded, which is called
from Morph>>extent.

Dave

On Tue, Oct 22, 2019 at 01:09:23PM +0000, Thiede, Christoph wrote:

> Hi Nicolas,
>
>
> thanks for the insight. On my system, it is not rounded ... I have the latest trunk updates installed.
>
> ________________________________
> Von: Squeak-dev <[hidden email]> im Auftrag von Nicolas Cellier <[hidden email]>
> Gesendet: Dienstag, 22. Oktober 2019 15:00:27
> An: The general-purpose Squeak developers list
> Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
>
> Hi Christoph,
> I cannot reproduce. It seems like bounds soon get rounded in my image:
>
>     (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
>         781@373
>
> Le mar. 22 oct. 2019 ? 13:40, Thiede, Christoph <[hidden email]<mailto:[hidden email]>> a ?crit :
>
> Hi all,
>
>
> In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:
>
>
> SystemWindow new openInWorld extent: (24214/31)@(11565/31).
>
>
> If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:
>
>
> [cid:16df38cc226f456b1e51]
>
>
>   *   As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
>   *   The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
>   *   The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
>   *   [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?
>
> I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:
>
>   *   #position: appears to round the delta value for movement
>   *   #extent: and #bounds: do no rounding at all.
>
> Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
> Or do you have any idea how one could debug the problem?
>
> (For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
> [cid:16df38cc227f456b1e52])
>
> Looking forward to your help!
> Best,
> Christoph
>




>


Reply | Threaded
Open this post in threaded view
|

Re: Fractional bounds and flickering (contains images that may be disturbing to some readers)

Christoph Thiede

Hi Dave,


many thanks for the pointer! The #extent: implementation in my image actually does not call #rounded - this is because I have installed Widgets which contains an extension method based on an older implementation of #extent: ... Will report or fix the bug there. Thanks.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von David T. Lewis <[hidden email]>
Gesendet: Mittwoch, 23. Oktober 2019 03:20:43
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
 
I cannot reproduce in my image either. The fractional bounds are
rounded to integer values in Rectangle>>rounded, which is called
from Morph>>extent.

Dave

On Tue, Oct 22, 2019 at 01:09:23PM +0000, Thiede, Christoph wrote:
> Hi Nicolas,
>
>
> thanks for the insight. On my system, it is not rounded ... I have the latest trunk updates installed.
>
> ________________________________
> Von: Squeak-dev <[hidden email]> im Auftrag von Nicolas Cellier <[hidden email]>
> Gesendet: Dienstag, 22. Oktober 2019 15:00:27
> An: The general-purpose Squeak developers list
> Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
>
> Hi Christoph,
> I cannot reproduce. It seems like bounds soon get rounded in my image:
>
>     (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
>         781@373
>
> Le mar. 22 oct. 2019 ? 13:40, Thiede, Christoph <[hidden email]<mailto:[hidden email]>> a ?crit :
>
> Hi all,
>
>
> In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:
>
>
> SystemWindow new openInWorld extent: (24214/31)@(11565/31).
>
>
> If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:
>
>
> [cid:16df38cc226f456b1e51]
>
>
>   *   As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
>   *   The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
>   *   The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
>   *   [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?
>
> I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:
>
>   *   #position: appears to round the delta value for movement
>   *   #extent: and #bounds: do no rounding at all.
>
> Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
> Or do you have any idea how one could debug the problem?
>
> (For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
> [cid:16df38cc227f456b1e52])
>
> Looking forward to your help!
> Best,
> Christoph
>




>




jrm
Reply | Threaded
Open this post in threaded view
|

Re: Fractional bounds and flickering (contains images that may be disturbing to some readers)

jrm
Thiede,

Do you find Widgets useful?

On Wed, Oct 23, 2019 at 12:24 AM Thiede, Christoph <[hidden email]> wrote:

Hi Dave,


many thanks for the pointer! The #extent: implementation in my image actually does not call #rounded - this is because I have installed Widgets which contains an extension method based on an older implementation of #extent: ... Will report or fix the bug there. Thanks.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von David T. Lewis <[hidden email]>
Gesendet: Mittwoch, 23. Oktober 2019 03:20:43
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
 
I cannot reproduce in my image either. The fractional bounds are
rounded to integer values in Rectangle>>rounded, which is called
from Morph>>extent.

Dave

On Tue, Oct 22, 2019 at 01:09:23PM +0000, Thiede, Christoph wrote:
> Hi Nicolas,
>
>
> thanks for the insight. On my system, it is not rounded ... I have the latest trunk updates installed.
>
> ________________________________
> Von: Squeak-dev <[hidden email]> im Auftrag von Nicolas Cellier <[hidden email]>
> Gesendet: Dienstag, 22. Oktober 2019 15:00:27
> An: The general-purpose Squeak developers list
> Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
>
> Hi Christoph,
> I cannot reproduce. It seems like bounds soon get rounded in my image:
>
>     (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
>         781@373
>
> Le mar. 22 oct. 2019 ? 13:40, Thiede, Christoph <[hidden email]<mailto:[hidden email]>> a ?crit :
>
> Hi all,
>
>
> In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:
>
>
> SystemWindow new openInWorld extent: (24214/31)@(11565/31).
>
>
> If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:
>
>
> [cid:16df38cc226f456b1e51]
>
>
>   *   As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
>   *   The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
>   *   The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
>   *   [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?
>
> I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:
>
>   *   #position: appears to round the delta value for movement
>   *   #extent: and #bounds: do no rounding at all.
>
> Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
> Or do you have any idea how one could debug the problem?
>
> (For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
> [cid:16df38cc227f456b1e52])
>
> Looking forward to your help!
> Best,
> Christoph
>




>





--
John-Reed Maffeo


Reply | Threaded
Open this post in threaded view
|

[OT] AW: Fractional bounds and flickering (contains images that may be disturbing to some readers)

Christoph Thiede

I can't tell you, I did not use it actively. I have only installed it because it is a dependency of WindowAcrobatics.

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von John-Reed Maffeo <[hidden email]>
Gesendet: Mittwoch, 23. Oktober 2019 16:49 Uhr
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
 
Thiede,

Do you find Widgets useful?

On Wed, Oct 23, 2019 at 12:24 AM Thiede, Christoph <[hidden email]> wrote:

Hi Dave,


many thanks for the pointer! The #extent: implementation in my image actually does not call #rounded - this is because I have installed Widgets which contains an extension method based on an older implementation of #extent: ... Will report or fix the bug there. Thanks.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von David T. Lewis <[hidden email]>
Gesendet: Mittwoch, 23. Oktober 2019 03:20:43
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
 
I cannot reproduce in my image either. The fractional bounds are
rounded to integer values in Rectangle>>rounded, which is called
from Morph>>extent.

Dave

On Tue, Oct 22, 2019 at 01:09:23PM +0000, Thiede, Christoph wrote:
> Hi Nicolas,
>
>
> thanks for the insight. On my system, it is not rounded ... I have the latest trunk updates installed.
>
> ________________________________
> Von: Squeak-dev <[hidden email]> im Auftrag von Nicolas Cellier <[hidden email]>
> Gesendet: Dienstag, 22. Oktober 2019 15:00:27
> An: The general-purpose Squeak developers list
> Betreff: Re: [squeak-dev] Fractional bounds and flickering (contains images that may be disturbing to some readers)
>
> Hi Christoph,
> I cannot reproduce. It seems like bounds soon get rounded in my image:
>
>     (SystemWindow new openInWorld extent: (24214/31)@(11565/31)) bounds extent.
>         781@373
>
> Le mar. 22 oct. 2019 ? 13:40, Thiede, Christoph <[hidden email]<mailto:[hidden email]>> a ?crit :
>
> Hi all,
>
>
> In the latest days, I encountered flickering problems caused by non-integer bounds of system windows again. For me, the following fails reproducibly in different images:
>
>
> SystemWindow new openInWorld extent: (24214/31)@(11565/31).
>
>
> If I hover and unhover the window a few times, its contents are drawn badly and incompletely like this:
>
>
> [cid:16df38cc226f456b1e51]
>
>
>   *   As you can see, the issue also affects other morphs in the same region (in the screenshot I am hovering the implementors button of the background browser).
>   *   The issue only occurs with very complex fractions, so the extent 500 @ 300 / 2 would not be a problem (at least in my image). I could not reproduce it using floats.
>   *   The situation can be also reproduced by composing a few morphs manually, but the more submorphs there, the higher the flickering rate appears to be.
>   *   [World imageForm] does not contain any abnormalities, maybe the problem is related to the damage recording?
>
> I would like to solve this bug, but I'm not sure where the problem actually arises. In general, should morphs be allowed to have non-integer bounds? This could be useful e. g. for exact animations, but we already have some rounding that (unfortunately) rule out this use case:
>
>   *   #position: appears to round the delta value for movement
>   *   #extent: and #bounds: do no rounding at all.
>
> Should we maybe apply some rounding or at least truncating there? Or just convert the arguments using #asFloat before?
> Or do you have any idea how one could debug the problem?
>
> (For relevancy: I often call Preferences >> #changeFontSize:, and each time all windows are drawn badly until I round their bounds. This can indeed be quite annoying:
> [cid:16df38cc227f456b1e52])
>
> Looking forward to your help!
> Best,
> Christoph
>




>





--
John-Reed Maffeo