BsPlatformInfo.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsIReflectable.h"
  4. #include "BsVideoModeInfo.h"
  5. namespace BansheeEngine
  6. {
  7. /**
  8. * @brief Available platforms we can build for
  9. */
  10. enum class PlatformType
  11. {
  12. Windows,
  13. Count // Keep at end
  14. };
  15. /**
  16. * @brief Contains per-platform information used primarily for build purposes.
  17. */
  18. struct BS_ED_EXPORT PlatformInfo : public IReflectable
  19. {
  20. PlatformInfo();
  21. virtual ~PlatformInfo();
  22. PlatformType type; /**< Type of platform this object contains data for. */
  23. WString defines; /**< A set of semicolon separated defines to use when compiling scripts for this platform. */
  24. WeakResourceHandle<Prefab> mainScene; /**< Default scene that is loaded when the application is started. */
  25. bool fullscreen; /**< If true the application will be started in fullscreen using user's desktop resolution. */
  26. UINT32 windowedWidth; /**< Width of the window if not starting the application in fullscreen. */
  27. UINT32 windowedHeight; /**< Height of the window if not starting the application in fullscreen. */
  28. bool debug; /**< Determines should the scripts be output in debug mode (worse performance but better error reporting). */
  29. /************************************************************************/
  30. /* RTTI */
  31. /************************************************************************/
  32. public:
  33. friend class PlatformInfoRTTI;
  34. static RTTITypeBase* getRTTIStatic();
  35. virtual RTTITypeBase* getRTTI() const override;
  36. };
  37. /**
  38. * @brief Contains Windows specific per-platform information used
  39. * primarily for build purposes.
  40. */
  41. struct BS_ED_EXPORT WinPlatformInfo : public PlatformInfo
  42. {
  43. WinPlatformInfo();
  44. WeakResourceHandle<Texture> icon;
  45. WString titlebarText;
  46. /************************************************************************/
  47. /* RTTI */
  48. /************************************************************************/
  49. public:
  50. friend class WinPlatformInfoRTTI;
  51. static RTTITypeBase* getRTTIStatic();
  52. virtual RTTITypeBase* getRTTI() const override;
  53. };
  54. }