BsPlatformInfo.h 2.3 KB

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