• 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: Can't Draw To Secondary Monitor
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can't Draw To Secondary Monitor


  • Subject: Re: Can't Draw To Secondary Monitor
  • From: Tom Sutcliffe <email@hidden>
  • Date: Mon, 28 Apr 2003 14:04:20 +0100

It isn't a restriction of QT itself - I wrote an app using NSMovieView that happily fullscreens a video to a second monitor. I would have released it as a freeware movieplayer if things in NSMovieView's played as well as they do in QuickTime Player... It may well be a restriction of the graphics chip. It certainly works on my GeForce4.

Also should you be using CGShieldingWindowLevel directly? I'm don't know much about CG but my app happily worked by using a subclass of NSWindow which ran at the NSScreenSaverWindowLevel (to float over the menubar) and overrode constrainFrameRect:toScreen: to allow the titlebar to be moved off the top of the screen. (it did other stuff with applicationDidDeactivate to make sure the window was demoted to a normal level when the app was deactivated etc) and didn't use any CoreGraphics calls at all.

Regards,

Tom

ps Now it's on OS X 10.2 I should probably use NSMenu setMenuBarVisible instead of the ScreenSaverWindow Level.

I am not aware of any application that can show QT on the secondary monitor. I believe this is a restriction in QT. It also appears in PC software, so it may have to do with the graphics chips.

Michael


On Sunday, April 27, 2003, at 06:16 PM, Joshua Orr wrote:

I have a program that plays a video in a window. When the users wants to go
to full screen, the program gets the current screen the window is in, then
releases it, then it creates a new window in that screen with a window level
that the CGShieldingWindowLevel() function returns.

This works just fine for the main screen, but in a secondary screen it seems
to cover the secondary monitor with a black window, but it does not display
anything in it. It's always black. But when on the main monitor it
displays the movie just fine.

Can anyone help? I need to fix this fast... Any help would be appreciated!


Here is basically what the code does when it goes full screen:

NSScreen *theScreen = [mainWindow screen];

[mainWindow orderOut:self];
[mainWindow release];

screenRect = [theScreen frame];

windowLevel = CGShieldingWindowLevel();

mainWindow = [[NSWindow alloc]
initWithContentRect:screenRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO
screen:[NSScreen mainScreen]];

[mainWindow setLevel:windowLevel];

-Joshua D. Orr-
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

References: 
 >Re: Can't Draw To Secondary Monitor (From: Michael Latta <email@hidden>)

  • Prev by Date: Re: Protocols on the fly?
  • Next by Date: Program flow in NSApplication
  • Previous by thread: Re: Can't Draw To Secondary Monitor
  • Next by thread: Custom View
  • Index(es):
    • Date
    • Thread