#include <SDL_image.h>
#ifdef MACOSX
-# include <CoreFoundation/CoreFoundation.h>
+namespace supertux_apple {
+#include <CoreFoundation/CoreFoundation.h>
+}
#endif
#include "gameconfig.hpp"
}
#ifdef MACOSX
+{
+ using namespace supertux_apple;
+
// when started from Application file on Mac OS X...
char path[PATH_MAX];
CFBundleRef mainBundle = CFBundleGetMainBundle();
assert(mainBundle != 0);
CFURLRef mainBundleURL = CFBundleCopyBundleURL(mainBundle);
assert(mainBundleURL != 0);
- CFStringRef pathStr = CFUrlCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle);
+ CFStringRef pathStr = CFURLCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle);
assert(pathStr != 0);
CFStringGetCString(pathStr, path, PATH_MAX, kCFStringEncodingUTF8);
CFRelease(mainBundleURL);
sourcedir = true;
}
}
+}
#endif
#ifdef _WIN32
#else
datadir = APPDATADIR;
#endif
- datadir += "/";
- datadir += application;
if(!PHYSFS_addToSearchPath(datadir.c_str(), 1)) {
log_warning << "Couldn't add '" << datadir << "' to physfs searchpath: " << PHYSFS_getLastError() << std::endl;
}
// try to guess aspect ratio of monitor if needed
if (aspect_ratio <= 0) {
+// TODO: commented out because
+// 1) it tends to guess wrong if widescreen-monitors don't stretch 800x600 to fit, but just display black borders
+// 2) aspect ratios other than 4:3 are largely untested
+/*
if(config->use_fullscreen && desktop_width > 0) {
aspect_ratio = static_cast<double>(desktop_width) / static_cast<double>(desktop_height);
} else {
+*/
aspect_ratio = 4.0 / 3.0;
+/*
}
+*/
}
// use aspect ratio to calculate logical resolution
SDL_WM_SetCaption(PACKAGE_NAME " " PACKAGE_VERSION, 0);
// set icon
- SDL_Surface* icon = IMG_Load_RW(
- get_physfs_SDLRWops("images/engine/icons/supertux.xpm"), true);
+ #ifdef MACOSX
+ const char* icon_fname = "images/engine/icons/supertux-256x256.png";
+ #else
+ const char* icon_fname = "images/engine/icons/supertux.xpm";
+ #endif
+ SDL_Surface* icon = IMG_Load_RW(get_physfs_SDLRWops(icon_fname), true);
if(icon != 0) {
SDL_WM_SetIcon(icon, 0);
SDL_FreeSurface(icon);
}
#ifdef DEBUG
else {
- log_warning << "Couldn't find icon 'images/engine/icons/supertux.xpm'" << std::endl;
+ log_warning << "Couldn't find icon '" << icon_fname << "'" << std::endl;
}
#endif