[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Floating point rounding errors in NSTableView?
From: |
Matt Rice |
Subject: |
Re: Floating point rounding errors in NSTableView? |
Date: |
Tue, 30 Jun 2015 02:43:26 -0700 |
On Mon, Jun 29, 2015 at 8:07 AM, David Chisnall <address@hidden> wrote:
> Hi all,
>
> I have an application that uses an NSTableView to display a CPU trace. After
> about 10,000,000 rows, it’s quite obvious that something is wrong with the
> rendering - about every 15 rows, there’s a blank line between adjacent rows.
> By around 15,000,000 it looks as if there’s a blank line between every other
> line, and some rows are drawn on top of each other.
>
> By row 100,000,000, every row in a group (height *1.5ish?) is drawn on top of
> each other one.
>
> It looks as if there is some floating point rounding happening that’s causing
> the offset calculation to go wrong?
>
> David
>
> P.S. On OS X, the display does not have these problems, though OS X’s
> NSTableView gets very confused by input events when you scroll beyond about
> row 100,000,000...
is it apparent in the return value of -[NSTableView rectOfRow:] for
the afflicted rows? _rowHeight contributing to the rect.origin.y seems
to be a float rather than CGFloat?