Re: Full screen and popup menu
Re: Full screen and popup menu
- Subject: Re: Full screen and popup menu
- From: Ricky Sharp <email@hidden>
- Date: Thu, 23 Sep 2004 18:36:57 -0500
On Sep 23, 2004, at 5:23 PM, Don Willems wrote:
Yes. When you do CGDisplayCapture a shielding window is created
automatically
Ah, I tried removing the CGDisplayCapture bit, and now it works, I
have a full screen window just by setting the window level to
NSStatusWindowLevel!
So what is the advantage of using CGDisplayCapture instead of just
setting the window level? (I got the CGDisplayCapture and
CGShieldingWindowLevel() from an example and thought that that was the
way you created full screen windows.)
Here's a quote from an Apple engineer a while back on quartz-dev:
"Captured displays are typically used for porting full screen games and
some similar software, which contain their own graphics engine and do
not or can not interact with the window system. Some common cases
include full screen OpenGL context drawing systems as found in games,
where the context can achieve better performance on some hardware by
placing the frame buffer into unusual modes of operation.
In particular, a full-screen GL context may place the hardware in
states that cannot be supported by the window system. That's why the
documentation on using full-screen GL contexts recommends capturing the
display, removing the display from the window system.
There are some clever hacks out there that will get a window on a
captured display in some circumstances, however, this will definitely
not work on all hardware, particularly not with an OpenGL full-screen
context. The window may simply not appear, or little bits and pieces
may appear where a tiled framebuffer happens to map some of the tiles
holding the window content on-screen."
So basically, if you want to interact with the Window Server (i.e. have
menus, other windows), don't go the capture route.
What I do in my kiosk-type of apps is to set blanking windows at
NSNormalWindowLevel + 1 and my content window at NSNormalWindowLevel +
2. It's a long story (don't have time right now to explain), but this
is the closest I can currently get to a system that is most compatible
with Expose. I also confirmed with a couple of Apple engineers that
adding the 1 and 2 should not cause any grief in future OS releases.
___________________________________________________________
Ricky A. Sharp mailto:email@hidden
Instant Interactive(tm) http://www.instantinteractive.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden