Some Mac / __APPLE___ cleanups:
- remove the OSX_BUNDLE crap *I* introduced years ago - we're always a a bun dle on Mac now. - fix up the default fg-root on Mac to be FlightGear.app/Contents/Resources/ data - i.e the location used by the macflightgear.org distro, and indeed the obv ious 'correct' location. Not sure why I didn't use that in the first place, back in the day. - remove the CPSForegroundEnable hack. For one thing, we're a bundle and don 't need it, and for another, osgViewer on Mac does the same logic using a newer, public API rather than a hack into the OS. - remove the strange logic for doing fgOSInit 'early' (in bootstrap rather t han main) when running from the command line on Mac; again this is obsolete, and no one seems to know why it was ever necessary. I guess it was an interaction w ith SDL when running without a bundle. - (not Mac related) remove obsolete code bracketed by ENABLE_PLIB_JOYSTICK a nd USE_GLIDE (neither of which are ever set, even from config.h that I can see) in main.cxx
This commit is contained in:
parent
6c4061bdc5
commit
c8a9fd2bd4
3 changed files with 8 additions and 69 deletions
|
@ -88,25 +88,6 @@ handleFPE (int num)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int lo;
|
|
||||||
int hi;
|
|
||||||
} PSN;
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
short CPSGetCurrentProcess(PSN *psn);
|
|
||||||
short CPSSetProcessName (PSN *psn, char *processname);
|
|
||||||
short CPSEnableForegroundOperation(PSN *psn, int _arg2, int _arg3, int _arg4, int _arg5);
|
|
||||||
short CPSSetFrontProcess(PSN *psn);
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CPSEnableFG(psn) CPSEnableForegroundOperation(psn,0x03,0x3C,0x2C,0x1103)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
int main ( int argc, char **argv );
|
int main ( int argc, char **argv );
|
||||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
||||||
|
@ -194,21 +175,6 @@ int main ( int argc, char **argv ) {
|
||||||
_control87(MCW_EM, MCW_EM); /* defined in float.h */
|
_control87(MCW_EM, MCW_EM); /* defined in float.h */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Keyboard focus hack
|
|
||||||
#if defined(__APPLE__) && !defined(OSX_BUNDLE)
|
|
||||||
{
|
|
||||||
PSN psn;
|
|
||||||
|
|
||||||
fgOSInit (&argc, argv);
|
|
||||||
_bootstrap_OSInit++;
|
|
||||||
|
|
||||||
CPSGetCurrentProcess(&psn);
|
|
||||||
CPSSetProcessName(&psn, "FlightGear");
|
|
||||||
CPSEnableFG(&psn);
|
|
||||||
CPSSetFrontProcess(&psn);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// FIXME: add other, more specific
|
// FIXME: add other, more specific
|
||||||
// exceptions.
|
// exceptions.
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -270,25 +270,21 @@ bool fgInitFGRoot ( int argc, char **argv ) {
|
||||||
root = "/FlightGear";
|
root = "/FlightGear";
|
||||||
#elif defined( WIN32 )
|
#elif defined( WIN32 )
|
||||||
root = "\\FlightGear";
|
root = "\\FlightGear";
|
||||||
#elif defined(OSX_BUNDLE)
|
#elif defined(__APPLE__)
|
||||||
/* the following code looks for the base package directly inside
|
/*
|
||||||
the application bundle. This can be changed fairly easily by
|
The following code looks for the base package inside the application
|
||||||
fiddling with the code below. And yes, I know it's ugly and verbose.
|
bundle, in the standard Contents/Resources location.
|
||||||
*/
|
*/
|
||||||
CFBundleRef appBundle = CFBundleGetMainBundle();
|
CFURLRef resourcesUrl = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle());
|
||||||
CFURLRef appUrl = CFBundleCopyBundleURL(appBundle);
|
|
||||||
CFRelease(appBundle);
|
|
||||||
|
|
||||||
// look for a 'data' subdir directly inside the bundle : is there
|
// look for a 'data' subdir
|
||||||
// a better place? maybe in Resources? I don't know ...
|
CFURLRef dataDir = CFURLCreateCopyAppendingPathComponent(NULL, resourcesUrl, CFSTR("data"), true);
|
||||||
CFURLRef dataDir = CFURLCreateCopyAppendingPathComponent(NULL, appUrl, CFSTR("data"), true);
|
|
||||||
|
|
||||||
// now convert down to a path, and the a c-string
|
// now convert down to a path, and the a c-string
|
||||||
CFStringRef path = CFURLCopyFileSystemPath(dataDir, kCFURLPOSIXPathStyle);
|
CFStringRef path = CFURLCopyFileSystemPath(dataDir, kCFURLPOSIXPathStyle);
|
||||||
root = CFStringGetCStringPtr(path, CFStringGetSystemEncoding());
|
root = CFStringGetCStringPtr(path, CFStringGetSystemEncoding());
|
||||||
|
|
||||||
// tidy up.
|
CFRelease(resourcesUrl);
|
||||||
CFRelease(appBundle);
|
|
||||||
CFRelease(dataDir);
|
CFRelease(dataDir);
|
||||||
CFRelease(path);
|
CFRelease(path);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -340,14 +340,6 @@ static void fgMainLoop( void ) {
|
||||||
SG_LOG( SG_ALL, SG_DEBUG, "Running Main Loop");
|
SG_LOG( SG_ALL, SG_DEBUG, "Running Main Loop");
|
||||||
SG_LOG( SG_ALL, SG_DEBUG, "======= ==== ====");
|
SG_LOG( SG_ALL, SG_DEBUG, "======= ==== ====");
|
||||||
|
|
||||||
#if defined( ENABLE_PLIB_JOYSTICK )
|
|
||||||
// Read joystick and update control settings
|
|
||||||
// if ( fgGetString("/sim/control-mode") == "joystick" )
|
|
||||||
// {
|
|
||||||
// fgJoystickRead();
|
|
||||||
// }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Fix elevation. I'm just sticking this here for now, it should
|
// Fix elevation. I'm just sticking this here for now, it should
|
||||||
// probably move eventually
|
// probably move eventually
|
||||||
|
|
||||||
|
@ -879,16 +871,6 @@ static void fgIdleFunction ( void ) {
|
||||||
system ( command.c_str() );
|
system ( command.c_str() );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// These are a few miscellaneous things that aren't really
|
|
||||||
// "subsystems" but still need to be initialized.
|
|
||||||
|
|
||||||
#ifdef USE_GLIDE
|
|
||||||
if ( strstr ( general.get_glRenderer(), "Glide" ) ) {
|
|
||||||
grTexLodBiasValue ( GR_TMU0, 1.0 ) ;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This is the top level init routine which calls all the
|
// This is the top level init routine which calls all the
|
||||||
// other subsystem initialization routines. If you are adding
|
// other subsystem initialization routines. If you are adding
|
||||||
// a subsystem to flightgear, its initialization call should be
|
// a subsystem to flightgear, its initialization call should be
|
||||||
|
@ -1011,13 +993,8 @@ bool fgMainInit( int argc, char **argv ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the Window/Graphics environment.
|
// Initialize the Window/Graphics environment.
|
||||||
#if !defined(__APPLE__) || defined(OSX_BUNDLE)
|
|
||||||
// Mac OS X command line ("non-bundle") applications call this
|
|
||||||
// from main(), in bootstrap.cxx. Andy doesn't know why, someone
|
|
||||||
// feel free to add comments...
|
|
||||||
fgOSInit(&argc, argv);
|
fgOSInit(&argc, argv);
|
||||||
_bootstrap_OSInit++;
|
_bootstrap_OSInit++;
|
||||||
#endif
|
|
||||||
|
|
||||||
fgRegisterWindowResizeHandler( &FGRenderer::resize );
|
fgRegisterWindowResizeHandler( &FGRenderer::resize );
|
||||||
fgRegisterIdleHandler( &fgIdleFunction );
|
fgRegisterIdleHandler( &fgIdleFunction );
|
||||||
|
|
Loading…
Add table
Reference in a new issue