Re: Extremely low fps during transparent NSWindow resize
Re: Extremely low fps during transparent NSWindow resize
- Subject: Re: Extremely low fps during transparent NSWindow resize
- From: Ken Thomases <email@hidden>
- Date: Mon, 05 Nov 2012 20:07:02 -0600
On Nov 5, 2012, at 5:39 PM, Kyle Sluder wrote:
> On Mon, Nov 5, 2012, at 02:20 PM, Andrea3000 wrote:
>> Since I still have a Snow Leopard partition I have access to QuartDebug
>> 4.1 and the hidden setting you suggested works as expected.
>> The strange thing is that while regular windows like Safari, Mail, ecc,
>> are all opaque except for the corners (as pointed out in the previous
>> mail), Quick Time Player X window is fully transparent!
>>
>> So the question is still open. How can Quick Time Player X be so fast
>> during resize if it is an all transparent window?
>
> What if you take a hint from what Quartz Debug is telling you about
> standard system windows, and instead of using an NSBezierPath (which you
> are currently redrawing in its entirety on every frame of a drag), you
> fill your window using three large rectangles and four half-arcs?
It's worth trying, but I don't think that's what is meant when Quartz Debug says a region of a window is transparent. It has nothing to do with how it's been drawn. It has to do with what the window server has been told about which parts of the window are non-opaque. -[NSWindow setOpaque:NO] tells the window server that no part of the window is opaque, so it has to composite the whole window, even if, in reality, most of the window is filled with opaque color.
This issue can be reproduced with a bog-standard Cocoa app. Just add [window setOpaque:NO] to the -applicationDidFinishLaunching: method in a standard app template and you get the problem. This is without any drawing (other than the window's own background color, which I'm leaving at the default) by any views.
I suspect that QuickTime Player X is using private interfaces to tell the window server that specific window regions (the four corners) are non-opaque.
Regards,
Ken
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden