• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Full screen and popup menu
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: Full screen and popup menu
      • From: Brian Christensen <email@hidden>
References: 
 >Full screen and popup menu (From: Don Willems <email@hidden>)
 >Re: Full screen and popup menu (From: Glenn Andreas <email@hidden>)
 >Re: Full screen and popup menu (From: Don Willems <email@hidden>)

  • Prev by Date: Re: Theft Recovery: Useful Tool or SpyWare?
  • Next by Date: NSBezierPath clipped by subviews of an NSView?
  • Previous by thread: Re: Full screen and popup menu
  • Next by thread: Re: Full screen and popup menu
  • Index(es):
    • Date
    • Thread