BsMonoPrerequisites.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsPrerequisites.h"
  5. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
  6. # ifdef BS_MONO_EXPORTS
  7. # define BS_MONO_EXPORT __declspec(dllexport)
  8. # else
  9. # if defined( __MINGW32__ )
  10. # define BS_MONO_EXPORT
  11. # else
  12. # define BS_MONO_EXPORT __declspec(dllimport)
  13. # endif
  14. # endif
  15. #elif defined ( BS_GCC_VISIBILITY )
  16. # define BS_MONO_EXPORT __attribute__ ((visibility("default")))
  17. #else
  18. # define BS_MONO_EXPORT
  19. #endif
  20. /** @addtogroup Plugins
  21. * @{
  22. */
  23. /** @defgroup Mono BansheeMono
  24. * Scripting language backend using Mono's CLR.
  25. */
  26. /** @} */
  27. namespace BansheeEngine
  28. {
  29. class MonoManager;
  30. class MonoAssembly;
  31. class MonoClass;
  32. class MonoMethod;
  33. class MonoField;
  34. class MonoProperty;
  35. /** A list of all valid Mono primitive types. */
  36. enum class MonoPrimitiveType
  37. {
  38. Boolean,
  39. Char,
  40. I8,
  41. U8,
  42. I16,
  43. U16,
  44. I32,
  45. U32,
  46. I64,
  47. U64,
  48. R32,
  49. R64,
  50. String,
  51. ValueType,
  52. Class,
  53. Array,
  54. Generic,
  55. Unknown
  56. };
  57. /** Returns the level of member visibility in the class. */
  58. enum class MonoMemberVisibility // Note: Elements must be ordered from most to least hidden
  59. {
  60. Private,
  61. Protected,
  62. Internal,
  63. ProtectedInternal,
  64. Public
  65. };
  66. }
  67. typedef struct _MonoClass MonoClass;
  68. typedef struct _MonoDomain MonoDomain;
  69. typedef struct _MonoImage MonoImage;
  70. typedef struct _MonoAssembly MonoAssembly;
  71. typedef struct _MonoMethod MonoMethod;
  72. typedef struct _MonoProperty MonoProperty;
  73. typedef struct _MonoObject MonoObject;
  74. typedef struct _MonoString MonoString;
  75. typedef struct _MonoArray MonoArray;
  76. typedef struct _MonoReflectionType MonoReflectionType;
  77. typedef struct _MonoException MonoException;
  78. typedef struct _MonoClassField MonoClassField;