• 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: ScreenSaverView
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ScreenSaverView


  • Subject: Re: ScreenSaverView
  • From: Dylan Neild <email@hidden>
  • Date: Wed, 25 Sep 2002 23:22:31 -0400

This is heavily understated. :)

I popped a PCI video card (RAGE 128) into my machine and gave my saver a hook first hand. The screen saver turns off a lot of features when it detects a Rage128 OpenGL engine, and running on the Rage128 (PCI or AGP) seems a-ok with my code (though not as pretty as with the RADEON 8500, for sure).

With a RADEON 8500 and a Rage128 installed, it is less then half as fast to drive both monitors... a lot less. Maybe like 10% of normal framerates on both cards. Maybe even less. This is clearly not just an issue of the CPU being worked too heavily (my application uses 5-10% CPU when on a single screen).. it's clearly some sort of locking or synching issue in the apple OpenGL implementation, as you suggest.

I don't write in carbon, so I can't tell if this is an OpenGL layer issue, or a cocoa NSOpenGL* issue.

In the meantime, blacking out all the displays and drawing to just the main monitor works fine for me.

Incidentally, I don't think you need to instantiate an OpenGLView/Context for each extra display. ScreenSaverViews implementation of either initWithFrame or startAnimation causes the screen to fade to black... with a little experimentation, you could just have the relevent method _only_ call the associated super method when a non-main monitor is detected... at least, as far as I can tell. Isn't much, but saves the overhead (as slight as it is, granted) of having an extra OpenGL context kicking around. :)


Dylan

On Tuesday, September 24, 2002, at 03:41 PM, Christopher Holland wrote:

Each OpenGLView will get an initWithFrame call. This is normal, as you have noted.
So, the problem is that it is trying to draw to 2 or more screens at one time (I am guessing that it is a synching issue for the contexts...but I have not idea really, it is in Apple's code) and is slowing down.
_______________________________________________
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: ScreenSaverView (From: Christopher Holland <email@hidden>)

  • Prev by Date: NSString and control character
  • Next by Date: Re: dragPromisedFilesOfTypes produces CFURLGetFSRef
  • Previous by thread: Re: ScreenSaverView
  • Next by thread: Driving Word X from Cocoa.
  • Index(es):
    • Date
    • Thread