BsPlatformInfo.h 2.4 KB

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