[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Change to NS drawing routines

From: Alan Third
Subject: Re: Change to NS drawing routines
Date: Mon, 13 Aug 2018 19:46:59 +0100
User-agent: Mutt/1.10.0 (2018-05-17)

On Sun, Aug 12, 2018 at 12:47:17PM +0200, Charles A. Roelli wrote:
> > Date: Sat, 11 Aug 2018 15:06:20 +0100
> > From: Alan Third <address@hidden>
> > 
> > The next version of macOS deprecates the method we use in the NS port
> > to draw to the screen, specifically marking an NSView as ‘focused’ and
> > then drawing to it. The ‘modern’ way is to only draw from within the
> > ‘drawRect:’ method where ‘focusing’ is already done for you. There is
> > some previous discussion here:
> > 
> > https://lists.gnu.org/archive/html/emacs-devel/2018-07/msg00799.html
> > 
> > I’ve created a new branch called scratch/ns-drawing which only draws
> > from within drawRect by marking areas that are to be drawn as ‘dirty’
> > and then, at the end of redisplay, forcing an update, which uses
> > drawRect and expose_frame to redraw the relevant bits of the frame.
> > 
> > I believe this is a somewhat controversial approach.
> Why's that?

Going through the previous email discussions, linked in the thread
above, Eli made it clear that he sees using the expose functions to
draw, when it’s not an expose event, as being incorrect.

i.e. this:

> > Again, invalidating an area to let the "expose" handler draw
> > afterwards is a very standard, primary, canonical, and sometimes
> > only way of drawing nowadays. (If you call it is an abuse or
> > trick, you'll be laughed.)
> You can laugh, if you want, but I still think it's abuse, and won't
> be convinced by being laughed at.

from http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00435.html

I can understand the argument to an extent, but I don’t have another

> > My experience so far is that performance is not noticeably slower than
> > master, however if someone with a slower Mac could try it that would
> > be helpful.
> I don't notice a speed difference compared to master on my slow box
> running macOS 10.6.  Do we have any benchmarks that we could use to
> check?

Unfortunately I’m not aware of any. I’m tempted to say that if there
is no clear performance penalty, then it’s not a problem.

Thanks everyone for testing this.
Alan Third

reply via email to

[Prev in Thread] Current Thread [Next in Thread]