BsPlatformInfo.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. HPrefab 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. /************************************************************************/
  29. /* RTTI */
  30. /************************************************************************/
  31. public:
  32. friend class PlatformInfoRTTI;
  33. static RTTITypeBase* getRTTIStatic();
  34. virtual RTTITypeBase* getRTTI() const override;
  35. };
  36. /**
  37. * @brief Contains Windows specific per-platform information used
  38. * primarily for build purposes.
  39. */
  40. struct BS_ED_EXPORT WinPlatformInfo : public PlatformInfo
  41. {
  42. WinPlatformInfo();
  43. HTexture icon16;
  44. HTexture icon32;
  45. HTexture icon48;
  46. HTexture icon64;
  47. HTexture icon96;
  48. HTexture icon128;
  49. HTexture icon192;
  50. HTexture icon256;
  51. HTexture taskbarIcon;
  52. WString titlebarText;
  53. /************************************************************************/
  54. /* RTTI */
  55. /************************************************************************/
  56. public:
  57. friend class WinPlatformInfoRTTI;
  58. static RTTITypeBase* getRTTIStatic();
  59. virtual RTTITypeBase* getRTTI() const override;
  60. };
  61. }