#ifndef CROSSPLATFORMDEFINES_H #define CROSSPLATFORMDEFINES_H ///////////////////////////////////////////////////////////////////// //define a consistent warning preprocessor for unix and win systems // see http://stackoverflow.com/questions/471935/user-warnings-on-msvc-and-gcc #define STRINGISE_IMPL(x) #x #define STRINGISE(x) STRINGISE_IMPL(x) // Use: #pragma message NICE_WARNING("My message") #if _MSC_VER # define FILE_LINE_LINK __FILE__ "(" STRINGISE(__LINE__) ") : " # define NICE_WARNING(exp) (FILE_LINE_LINK "WARNING: " exp) # define __MESSAGE(text) __pragma( message(__FILE__ "(" STRINGISE(__LINE__) ")" text) ) # define NICE_ERROR(text) __MESSAGE( " : Error: " #text ) # define NICE_MESSAGE(text) __MESSAGE( ": " #text ) //# define TODO(text) WARNING( TODO: text ) //use as: //ERROR( This will be a compiler error ); //MESSAGE( Well this is what I have to say about this code ); //TODO( Still have to fix 3D rendering ); #else//__GNUC__ - may need other defines for different compilers # define NICE_WARNING(exp) ("WARNING: " exp) #endif // ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // #include #ifdef WIN32 typedef unsigned int uint; inline double round(double r) { return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5); } inline float roundf(float r) { return (float)round(r); } #endif #endif //CROSSPLATFORMDEFINES_H