Serious-Engine/Sources/Engine/Base/Base.h
2019-03-31 20:56:37 +02:00

95 lines
2.8 KiB
C
Executable File

/* Copyright (c) 2002-2012 Croteam Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
#ifndef SE_INCL_ENGINE_BASE_BASE_H
#define SE_INCL_ENGINE_BASE_BASE_H
/*
* rcg10042001 In case these don't get defined in the project file, try to
* catch them here...
*/
// be a little more discerning, using these macros will ensure that if someone
// wants to use MINGW then they can
#if (defined _WIN32) || (defined _WIN64)
#ifndef PLATFORM_WIN32
#define PLATFORM_WIN32 1
#endif
#ifndef PRAGMA_ONCE
#define PRAGMA_ONCE
#endif
// disable problematic warnings
#pragma warning(disable: 4251) // dll interfacing problems
#pragma warning(disable: 4275) // dll interfacing problems
#pragma warning(disable: 4018) // signed/unsigned mismatch
#pragma warning(disable: 4244) // type conversion warnings
#pragma warning(disable: 4284) // using -> for UDT
#pragma warning(disable: 4355) // 'this' : used in base member initializer list
#pragma warning(disable: 4660) // template-class specialization is already instantiated
#pragma warning(disable: 4723) // potential divide by 0
// define engine api exporting declaration specifiers
#ifdef ENGINE_EXPORTS
#define ENGINE_API __declspec(dllexport)
#else
#define ENGINE_API __declspec(dllimport)
#ifdef NDEBUG
#pragma comment(lib, "Engine.lib")
#else
#pragma comment(lib, "EngineD.lib")
#endif
#endif
#elif (defined __linux__)
#if (defined __ANDROID__) || (defined __android__)
#error "Android current isn't supported"
#else
#define PLATFORM_LINUX 1
#endif
#elif (defined __APPLE__)
#define PLATFORM_MACOSX 1
#else
#warning "UNKNOWN PLATFORM IDENTIFIED!!!!"
#define PLATFORM_UNKNOWN 1
#endif
#if PLATFORM_LINUX || PLATFORM_MACOSX
#ifndef PLATFORM_UNIX
#define PLATFORM_UNIX 1
#endif
#endif
#ifdef PLATFORM_UNIX /* rcg10042001 */
#define ENGINE_API
#endif
#ifdef PLATFORM_PANDORA
# define INDEX_T unsigned short
# define INDEX_GL GL_UNSIGNED_SHORT
# define FASTMATH __attribute__((pcs("aapcs-vfp")))
#elif defined(__arm__)
# define INDEX_T unsigned short
# define INDEX_GL GL_UNSIGNED_SHORT
# define FASTMATH
#else
# define INDEX_T INDEX
# define INDEX_GL GL_UNSIGNED_INT
# define FASTMATH
#endif
#endif