/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2008.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: include/sgx/core/types/platform.hpp

*/

#ifndef SGX_CORE_TYPES_PLATFORM_HPP
#define SGX_CORE_TYPES_PLATFORM_HPP

//
// These defines should be set in project files, so as to
// prevent changing this heading everytime you want to
// build for another platform.

//
// They are listed here as a reference for which macros
// have been used within the project
//
#if 0
#define SGX_PLATFORM_WINTEL32       1
#define SGX_PLATFORM_PS2            0
#define SGX_PLATFORM_XBOX           0
#define SGX_PLATFORM_GAMECUBE       0
#define SGX_PLATFORM_PS3            0
#define SGX_PLATFORM_XBOX2          0
#define SGX_PLATFORM_WII	        0
#endif
// 
// Sometimes it can help to create aliases for platform
// names. This is especially true when combining technology
// with different naming conventions.
//
#define SGX_PLATFORM_PLAYSTATION2	SGX_PLATFORM_PS2

//
// Include the appropriate platform-oriented datatypes
//
#if SGX_PLATFORM_WINTEL32
  #include "sgx/core/types/platform/wintel32.hpp"
#elif SGX_PLATFORM_PS2
  #include "sgx/core/types/platform/ps2.hpp"
#elif SGX_PLATFORM_XBOX
  #include "sgx/core/types/platform/xbox.hpp"
#elif SGX_PLATFORM_GAMECUBE
  #include "sgx/core/types/platform/gamecube.hpp"
#elif SGX_PLATFORM_WII
  #include "sgx/core/types/platform/wii.hpp"
#elif SGX_PLATFORM_NDS
  #include "sgx/core/types/platform/nds.hpp"
#else
  #error "No platform has been set"
#endif

#define SGX_UNSUPPORTED()	sgxError("This function (%s, %d) is not supported on this platform.", __FILE__, __LINE__)

#endif /* SGX_CORE_TYPES_PLATFORM_HPP */
