2
0

BsScriptEnginePrerequisites.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsMonoPrerequisites.h"
  5. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
  6. # ifdef BS_SCR_BE_EXPORTS
  7. # define BS_SCR_BE_EXPORT __declspec(dllexport)
  8. # else
  9. # if defined( __MINGW32__ )
  10. # define BS_SCR_BE_EXPORT
  11. # else
  12. # define BS_SCR_BE_EXPORT __declspec(dllimport)
  13. # endif
  14. # endif
  15. #elif defined ( BS_GCC_VISIBILITY )
  16. # define BS_SCR_BE_EXPORT __attribute__ ((visibility("default")))
  17. #else
  18. # define BS_SCR_BE_EXPORT
  19. #endif
  20. /** @addtogroup Plugins
  21. * @{
  22. */
  23. /** @defgroup SBansheeEngine SBansheeEngine
  24. * Contains script interop objects and other scripting functionality for BansheeEngine.
  25. * @{
  26. */
  27. /** @defgroup ScriptInteropEngine Script interop objects
  28. * Script interop objects for communicating between native code and MBansheeEngine managed assembly.
  29. */
  30. /** @defgroup RTTI-Impl-SEngine RTTI types
  31. * Types containing RTTI for specific classes.
  32. */
  33. /** @} */
  34. /** @} */
  35. namespace BansheeEngine
  36. {
  37. class ScriptObjectBase;
  38. class ScriptResourceManager;
  39. class ScriptResourceBase;
  40. class ScriptFont;
  41. class ScriptSpriteTexture;
  42. class ScriptShaderInclude;
  43. class ScriptTexture2D;
  44. class ScriptTexture3D;
  45. class ScriptTextureCube;
  46. class ScriptPlainText;
  47. class ScriptScriptCode;
  48. class ScriptShader;
  49. class ScriptMaterial;
  50. class ScriptMesh;
  51. class ScriptPrefab;
  52. class ScriptStringTable;
  53. class ScriptGUIElementStyle;
  54. class ScriptGUIElementStateStyle;
  55. class ScriptGUILayout;
  56. class ScriptGUILabel;
  57. class ScriptGUIScrollArea;
  58. class ScriptGUIScrollAreaLayout;
  59. class ScriptGameObjectBase;
  60. class ScriptSceneObject;
  61. class ScriptComponent;
  62. class ScriptManagedResource;
  63. class ScriptRenderTarget;
  64. class ScriptRenderTexture2D;
  65. class ScriptCamera;
  66. class ScriptMeshData;
  67. class ManagedComponent;
  68. class ManagedSerializableFieldData;
  69. class ManagedSerializableFieldKey;
  70. class ManagedSerializableFieldDataEntry;
  71. class ManagedSerializableTypeInfo;
  72. class ManagedSerializableTypeInfoPrimitive;
  73. class ManagedSerializableTypeInfoObject;
  74. class ManagedSerializableTypeInfoArray;
  75. class ManagedSerializableTypeInfoList;
  76. class ManagedSerializableTypeInfoDictionary;
  77. class ManagedSerializableObject;
  78. class ManagedSerializableArray;
  79. class ManagedSerializableList;
  80. class ManagedSerializableDictionary;
  81. class ManagedSerializableAssemblyInfo;
  82. class ManagedSerializableObjectInfo;
  83. class ManagedSerializableFieldInfo;
  84. class ManagedSerializableObjectData;
  85. class ManagedSerializableDiff;
  86. class ManagedResource;
  87. class ManagedResourceMetaData;
  88. class ScriptSerializableProperty;
  89. class ScriptAssemblyManager;
  90. class ScriptHString;
  91. class ScriptContextMenu;
  92. class ScriptGUISkin;
  93. class ScriptResourceRef;
  94. class ScriptPhysicsMaterial;
  95. class ScriptPhysicsMesh;
  96. class ScriptRigidbody;
  97. typedef GameObjectHandle<ManagedComponent> HManagedComponent;
  98. typedef ResourceHandle<ManagedResource> HManagedResource;
  99. enum TypeID_BansheeScript
  100. {
  101. TID_ManagedComponent = 50000,
  102. TID_ScriptSerializableObject = 50001,
  103. TID_ScriptSerializableArray = 50002,
  104. TID_SerializableAssemblyInfo = 50004,
  105. TID_SerializableObjectInfo = 50005,
  106. TID_SerializableFieldInfo = 50006,
  107. TID_SerializableTypeInfo = 50007,
  108. TID_SerializableTypeInfoPrimitive = 50008,
  109. TID_SerializableTypeInfoObject = 50009,
  110. TID_SerializableTypeInfoArray = 50010,
  111. TID_SerializableFieldData = 50011,
  112. TID_SerializableFieldKey = 50012,
  113. TID_SerializableFieldDataEntry = 50013,
  114. TID_SerializableFieldDataBool = 50014,
  115. TID_SerializableFieldDataChar = 50015,
  116. TID_SerializableFieldDataI8 = 50016,
  117. TID_SerializableFieldDataU8 = 50017,
  118. TID_SerializableFieldDataI16 = 50018,
  119. TID_SerializableFieldDataU16 = 50019,
  120. TID_SerializableFieldDataI32 = 50020,
  121. TID_SerializableFieldDataU32 = 50021,
  122. TID_SerializableFieldDataI64 = 50022,
  123. TID_SerializableFieldDataU64 = 50023,
  124. TID_SerializableFieldDataFloat = 50024,
  125. TID_SerializableFieldDataDouble = 50025,
  126. TID_SerializableFieldDataString = 50026,
  127. TID_SerializableFieldDataResourceRef = 50027,
  128. TID_SerializableFieldDataGameObjectRef = 50028,
  129. TID_SerializableFieldDataObject = 50029,
  130. TID_SerializableFieldDataArray = 50030,
  131. TID_SerializableFieldDataList = 50031,
  132. TID_SerializableFieldDataDictionary = 50032,
  133. TID_SerializableTypeInfoList = 50033,
  134. TID_SerializableTypeInfoDictionary = 50034,
  135. TID_ScriptSerializableList = 50035,
  136. TID_ScriptSerializableDictionary = 50036,
  137. TID_ManagedResource = 50037,
  138. TID_ManagedResourceMetaData = 50038,
  139. TID_ScriptSerializableObjectData = 50039,
  140. TID_ScriptSerializableDiff = 50040,
  141. TID_ScriptModification = 50041,
  142. TID_ScriptModifiedObject = 50042,
  143. TID_ScriptModifiedArray = 50043,
  144. TID_ScriptModifiedDictionary = 50044,
  145. TID_ScriptModifiedEntry = 50045,
  146. TID_ScriptModifiedField = 50046,
  147. TID_ScriptModifiedArrayEntry = 50047,
  148. TID_ScriptModifiedDictionaryEntry = 50048,
  149. TID_ScriptSerializableDictionaryKeyValue = 50049
  150. };
  151. typedef std::shared_ptr<ManagedSerializableFieldData> ManagedSerializableFieldDataPtr;
  152. typedef std::shared_ptr<ManagedSerializableFieldKey> ManagedSerializableFieldKeyPtr;
  153. typedef std::shared_ptr<ManagedSerializableFieldDataEntry> ManagedSerializableFieldDataEntryPtr;
  154. typedef std::shared_ptr<ManagedSerializableTypeInfo> ManagedSerializableTypeInfoPtr;
  155. typedef std::shared_ptr<ManagedSerializableTypeInfoObject> ManagedSerializableTypeInfoObjectPtr;
  156. typedef std::shared_ptr<ManagedSerializableObject> ManagedSerializableObjectPtr;
  157. typedef std::shared_ptr<ManagedSerializableArray> ManagedSerializableArrayPtr;
  158. typedef std::shared_ptr<ManagedSerializableList> ManagedSerializableListPtr;
  159. typedef std::shared_ptr<ManagedSerializableDictionary> ManagedSerializableDictionaryPtr;
  160. typedef std::shared_ptr<ManagedSerializableAssemblyInfo> ManagedSerializableAssemblyInfoPtr;
  161. typedef std::shared_ptr<ManagedSerializableObjectInfo> ManagedSerializableObjectInfoPtr;
  162. typedef std::shared_ptr<ManagedSerializableFieldInfo> ManagedSerializableFieldInfoPtr;
  163. typedef std::shared_ptr<ManagedSerializableTypeInfoArray> ManagedSerializableTypeInfoArrayPtr;
  164. typedef std::shared_ptr<ManagedSerializableTypeInfoList> ManagedSerializableTypeInfoListPtr;
  165. typedef std::shared_ptr<ManagedSerializableTypeInfoDictionary> ManagedSerializableTypeInfoDictionaryPtr;
  166. typedef std::shared_ptr<ManagedSerializableDiff> ManagedSerializableDiffPtr;
  167. typedef std::shared_ptr<ManagedResource> ManagedResourcePtr;
  168. typedef std::shared_ptr<ManagedResourceMetaData> ManagedResourceMetaDataPtr;
  169. }