#endif
#include <string>
+#include <vector>
#include "irrlicht.h"
#include "irrlichttypes.h" // u32
#include "irrlichttypes_extrabloated.h"
#include <unistd.h>
#include <stdint.h> //for uintptr_t
- #if (defined(linux) || defined(__linux)) && !defined(_GNU_SOURCE)
+ #if (defined(linux) || defined(__linux) || defined(__GNU__)) && !defined(_GNU_SOURCE)
#define _GNU_SOURCE
#endif
#else // Posix
#include <sys/time.h>
#include <time.h>
-#ifdef __MACH__
+#if defined(__MACH__) && defined(__APPLE__)
#include <mach/clock.h>
#include <mach/mach.h>
#endif
{
struct timespec ts;
// from http://stackoverflow.com/questions/5167269/clock-gettime-alternative-in-mac-os-x
-#ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
+#if defined(__MACH__) && defined(__APPLE__) // OS X does not have clock_gettime, use clock_get_time
clock_serv_t cclock;
mach_timespec_t mts;
host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
inline void setThreadName(const char *name) {
pthread_setname_np(name);
}
-#elif defined(_WIN32)
+#elif defined(_WIN32) || defined(__GNU__)
inline void setThreadName(const char* name) {}
#else
#warning "Unrecognized platform, thread names will not be available."
v2u32 getDisplaySize();
v2u32 getWindowSize();
+
+std::vector<core::vector3d<u32> > getSupportedVideoModes();
+std::vector<irr::video::E_DRIVER_TYPE> getSupportedVideoDrivers();
+const char *getVideoDriverName(irr::video::E_DRIVER_TYPE type);
+const char *getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type);
#endif
-inline const char * getPlatformName()
+inline const char *getPlatformName()
{
return
#if defined(ANDROID)
"AIX"
#elif defined(__hpux)
"HP-UX"
-#elif defined(__sun) && defined(__SVR4)
- "Solaris"
+#elif defined(__sun) || defined(sun)
+ #if defined(__SVR4)
+ "Solaris"
+ #else
+ "SunOS"
+ #endif
#elif defined(__CYGWIN__)
"Cygwin"
#elif defined(__unix__) || defined(__unix)
;
}
+void setXorgClassHint(const video::SExposedVideoData &video_data,
+ const std::string &name);
+
+// This only needs to be called at the start of execution, since all future
+// threads in the process inherit this exception handler
+void setWin32ExceptionHandler();
+
} // namespace porting
#ifdef __ANDROID__