[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Graphics Rounding (was Re: Pixel-aligned autoresizing)
From: |
Eric Wasylishen |
Subject: |
Graphics Rounding (was Re: Pixel-aligned autoresizing) |
Date: |
Sat, 9 Jul 2011 13:04:53 -0600 |
Hi Philippe,
The jumping is caused by our use of rint() in NSButtonCell - in fact, I think
we should avoid rint() entirely for graphics, because it uses a "round halfway
cases to the nearest even integer" algorithm; so 1.5 rounds to 2, but 2.5 also
rounds to 2.
The annoying thing is that none of the C standard library functions implement a
good rounding algorithm for graphics. c99's round() rounds halfway cases away
from zero. This is probably OK in practice but not ideal, since it means the
location of the coordinate system origin affects the rounding. I think the best
algorithm for graphics is round-towards-infinity, so just floor(x+0.5). I
wonder if we should just introduce this as a function for internal use, like
GSRoundTowardsInfinity().
Eric
On 2011-07-09, at 5:56 AM, Philippe Roussel wrote:
> Hi all,
>
> Le samedi 09 juillet 2011 à 00:54 +0200, Fred Kiefer a écrit :
>> On 08.07.2011 23:56, Eric Wasylishen wrote:
>
> [snip]
>
>>> I think it's safe to do. I went ahead and removed most of the
>> rounding in cairo. If it causes serious problems we can always revert
>> but things look OK to me. Also, the PixelExactDrawing-test is now very
>> close to Cocoa.
>>
>> Eric,
>>
>> thank you very much for the great work you are doing here!
>
> Maybe I'm not responding to the right thread but I just updated to svn
> revision 33493 and I'm observing a strange drawing behaviour.
>
> In the calendar view of SimpleAgenda I'm using 4 bitmap NSButtons to
> implement the arrows used to navigate between months. The 2 screenshots
> attached show how those arrows are moving up and down when resizing the
> main window (between the 2 pictures I only changed the vertical size).
>
> The 4 bitmaps have an odd vertical size (9 and 11) and the 4 NSButtons
> have an even vertical size (20) and I understand that it's impossible to
> center a 9 pixels bitmap in a 20 pixel button but I don't understand why
> the bitmap's position change when resizing the window.
>
> Of course when using an odd button size the bitmaps don't move so I just
> have to clean my own mess to fix this !
>
> Thanks,
> Philippe
> <calendar-1.png><calendar-2.png>_______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev
- Re: Pixel-aligned autoresizing, (continued)
- Re: Pixel-aligned autoresizing, Jens Ayton, 2011/07/06
- Re: Pixel-aligned autoresizing, Eric Wasylishen, 2011/07/06
- Re: Pixel-aligned autoresizing, Fred Kiefer, 2011/07/06
- Re: Pixel-aligned autoresizing, Eric Wasylishen, 2011/07/07
- Re: Pixel-aligned autoresizing, Fred Kiefer, 2011/07/07
- Re: Pixel-aligned autoresizing, Eric Wasylishen, 2011/07/08
- Re: Pixel-aligned autoresizing, Fred Kiefer, 2011/07/08
- Re: Pixel-aligned autoresizing, Eric Wasylishen, 2011/07/08
- Re: Pixel-aligned autoresizing, Fred Kiefer, 2011/07/08
- Re: Pixel-aligned autoresizing, Philippe Roussel, 2011/07/09
- Graphics Rounding (was Re: Pixel-aligned autoresizing),
Eric Wasylishen <=
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Fred Kiefer, 2011/07/10
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Eric Wasylishen, 2011/07/10
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Riccardo Mottola, 2011/07/11
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Eric Wasylishen, 2011/07/11
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Tim Schmielau, 2011/07/11
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Riccardo Mottola, 2011/07/12
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Philippe Roussel, 2011/07/11
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Eric Wasylishen, 2011/07/12
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), Philippe Roussel, 2011/07/13
- Re: Graphics Rounding (was Re: Pixel-aligned autoresizing), David Chisnall, 2011/07/20