Refactored the initialization of OSX windowing settings so that it's done on demand rather than on startup.

This commit is contained in:
Robert Osfield
2010-03-13 11:28:00 +00:00
parent b8b536257c
commit f27c103ec7
4 changed files with 155 additions and 60 deletions

View File

@@ -1053,19 +1053,29 @@ void GraphicsWindowCarbon::transformMouseXY(float& x, float& y)
class CarbonWindowingSystemInterface : public DarwinWindowingSystemInterface {
public:
CarbonWindowingSystemInterface()
: DarwinWindowingSystemInterface()
CarbonWindowingSystemInterface() : DarwinWindowingSystemInterface()
{
}
virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits)
{
_init();
return createGraphicsContextImplementation<PixelBufferCarbon, GraphicsWindowCarbon>(traits);
}
virtual void _init()
{
if (_initialized) return;
DarwinWindowingSystemInterface::init();
// register application event handler and AppleEventHandler to get quit-events:
static const EventTypeSpec menueventSpec = {kEventClassCommand, kEventCommandProcess};
OSErr status = InstallEventHandler(GetApplicationEventTarget(), NewEventHandlerUPP(ApplicationEventHandler), 1, &menueventSpec, 0, NULL);
status = AEInstallEventHandler( kCoreEventClass, kAEQuitApplication, NewAEEventHandlerUPP(QuitAppleEventHandler), 0, false);
}
virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits)
{
return createGraphicsContextImplementation<PixelBufferCarbon, GraphicsWindowCarbon>(traits);
}
};