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: Andrea3000 <email@hidden>
- Date: Tue, 06 Nov 2012 19:23:18 +0100
> 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.
I've tried what Kyle suggested but unfortunately it didn't change the behavior.
> 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.
Exactly, I also discovered the same results while I was investigating this issue quite a year ago on this list (http://lists.apple.com/archives/cocoa-dev/2012/Feb/msg00723.html).
> 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.
I really hope there is a way to obtain good resizing performance without using private API.
Is there a way to determine which special methods does Quick Time Player X call during window setup and/or composite?
_______________________________________________
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