BsScriptImportOptions.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. #pragma once
  2. #include "BsScriptEditorPrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsPixelData.h"
  5. #include "BsGpuProgram.h"
  6. namespace BansheeEngine
  7. {
  8. enum class FontRenderMode;
  9. /**
  10. * @brief Base class for all C++/CLR interop objects wrapping various
  11. * implementations of ImportOptions.
  12. */
  13. class BS_SCR_BED_EXPORT ScriptImportOptionsBase : public ScriptObjectBase
  14. {
  15. public:
  16. /**
  17. * @brief Returns the internal native import options.
  18. */
  19. SPtr<ImportOptions> getImportOptions() const { return mImportOptions; }
  20. protected:
  21. ScriptImportOptionsBase(MonoObject* instance);
  22. virtual ~ScriptImportOptionsBase() {}
  23. SPtr<ImportOptions> mImportOptions;
  24. };
  25. /**
  26. * @brief Interop class between C++ & CLR for ImportOptions.
  27. */
  28. class BS_SCR_BED_EXPORT ScriptImportOptions : public ScriptObject <ScriptImportOptions, ScriptImportOptionsBase>
  29. {
  30. public:
  31. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "ImportOptions")
  32. /**
  33. * @brief Creates a new managed ImportOptions instance containing
  34. * the provided import options.
  35. */
  36. static MonoObject* create(const SPtr<ImportOptions>& importOptions);
  37. private:
  38. ScriptImportOptions(MonoObject* instance);
  39. };
  40. /**
  41. * @brief Interop class between C++ & CLR for TextureImportOptions.
  42. */
  43. class BS_SCR_BED_EXPORT ScriptTextureImportOptions : public ScriptObject<ScriptTextureImportOptions, ScriptImportOptionsBase>
  44. {
  45. public:
  46. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "TextureImportOptions")
  47. /**
  48. * @brief Creates a new managed TextureImportOptions instance containing the
  49. * default import options for textures.
  50. */
  51. static MonoObject* create();
  52. /**
  53. * @brief Creates a new managed TextureImportOptions instance containing
  54. * the provided import options.
  55. */
  56. static MonoObject* create(const SPtr<TextureImportOptions>& options);
  57. private:
  58. ScriptTextureImportOptions(MonoObject* instance);
  59. /**
  60. * @brief Returns the internal native import options.
  61. */
  62. SPtr<TextureImportOptions> getTexImportOptions();
  63. /************************************************************************/
  64. /* CLR HOOKS */
  65. /************************************************************************/
  66. static void internal_CreateInstance(MonoObject* instance);
  67. static PixelFormat internal_GetPixelFormat(ScriptTextureImportOptions* thisPtr);
  68. static void internal_SetPixelFormat(ScriptTextureImportOptions* thisPtr, PixelFormat value);
  69. static bool internal_GetGenerateMipmaps(ScriptTextureImportOptions* thisPtr);
  70. static void internal_SetGenerateMipmaps(ScriptTextureImportOptions* thisPtr, bool value);
  71. static UINT32 internal_GetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr);
  72. static void internal_SetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr, UINT32 value);
  73. static bool internal_GetCPUReadable(ScriptTextureImportOptions* thisPtr);
  74. static void internal_SetCPUReadable(ScriptTextureImportOptions* thisPtr, bool value);
  75. static bool internal_GetIsSRGB(ScriptTextureImportOptions* thisPtr);
  76. static void internal_SetIsSRGB(ScriptTextureImportOptions* thisPtr, bool value);
  77. };
  78. /**
  79. * @brief Interop class between C++ & CLR for MeshImportOptions.
  80. */
  81. class BS_SCR_BED_EXPORT ScriptMeshImportOptions : public ScriptObject<ScriptMeshImportOptions, ScriptImportOptionsBase>
  82. {
  83. public:
  84. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "MeshImportOptions")
  85. /**
  86. * @brief Creates a new managed MeshImportOptions instance containing the
  87. * default import options for textures.
  88. */
  89. static MonoObject* create();
  90. /**
  91. * @brief Creates a new managed MeshImportOptions instance containing
  92. * the provided import options.
  93. */
  94. static MonoObject* create(const SPtr<MeshImportOptions>& options);
  95. private:
  96. ScriptMeshImportOptions(MonoObject* instance);
  97. /**
  98. * @brief Returns the internal native import options.
  99. */
  100. SPtr<MeshImportOptions> getMeshImportOptions();
  101. /************************************************************************/
  102. /* CLR HOOKS */
  103. /************************************************************************/
  104. static void internal_CreateInstance(MonoObject* instance);
  105. static bool internal_GetCPUReadable(ScriptMeshImportOptions* thisPtr);
  106. static void internal_SetCPUReadable(ScriptMeshImportOptions* thisPtr, bool value);
  107. static bool internal_GetImportNormals(ScriptMeshImportOptions* thisPtr);
  108. static void internal_SetImportNormals(ScriptMeshImportOptions* thisPtr, bool value);
  109. static bool internal_GetImportTangents(ScriptMeshImportOptions* thisPtr);
  110. static void internal_SetImportTangents(ScriptMeshImportOptions* thisPtr, bool value);
  111. static bool internal_GetImportSkin(ScriptMeshImportOptions* thisPtr);
  112. static void internal_SetImportSkin(ScriptMeshImportOptions* thisPtr, bool value);
  113. static bool internal_GetImportAnimation(ScriptMeshImportOptions* thisPtr);
  114. static void internal_SetImportAnimation(ScriptMeshImportOptions* thisPtr, bool value);
  115. static bool internal_GetImportBlendShapes(ScriptMeshImportOptions* thisPtr);
  116. static void internal_SetImportBlendShapes(ScriptMeshImportOptions* thisPtr, bool value);
  117. static float internal_GetScale(ScriptMeshImportOptions* thisPtr);
  118. static void internal_SetScale(ScriptMeshImportOptions* thisPtr, float value);
  119. };
  120. /**
  121. * @brief Interop class between C++ & CLR for FontImportOptions.
  122. */
  123. class BS_SCR_BED_EXPORT ScriptFontImportOptions : public ScriptObject <ScriptFontImportOptions, ScriptImportOptionsBase>
  124. {
  125. public:
  126. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "FontImportOptions")
  127. /**
  128. * @brief Creates a new managed FontImportOptions instance containing the
  129. * default import options for fonts.
  130. */
  131. static MonoObject* create();
  132. /**
  133. * @brief Creates a new managed FontImportOptions instance containing
  134. * the provided import options.
  135. */
  136. static MonoObject* create(const SPtr<FontImportOptions>& options);
  137. private:
  138. ScriptFontImportOptions(MonoObject* instance);
  139. /**
  140. * @brief Returns the internal native import options.
  141. */
  142. SPtr<FontImportOptions> getFontImportOptions();
  143. /************************************************************************/
  144. /* CLR HOOKS */
  145. /************************************************************************/
  146. static void internal_CreateInstance(MonoObject* instance);
  147. static MonoArray* internal_GetFontSizes(ScriptFontImportOptions* thisPtr);
  148. static void internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value);
  149. static UINT32 internal_GetDPI(ScriptFontImportOptions* thisPtr);
  150. static void internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value);
  151. static FontRenderMode internal_GetRenderMode(ScriptFontImportOptions* thisPtr);
  152. static void internal_SetRenderMode(ScriptFontImportOptions* thisPtr, FontRenderMode value);
  153. static bool internal_GetBold(ScriptFontImportOptions* thisPtr);
  154. static void internal_SetBold(ScriptFontImportOptions* thisPtr, bool value);
  155. static bool internal_GetItalic(ScriptFontImportOptions* thisPtr);
  156. static void internal_SetItalic(ScriptFontImportOptions* thisPtr, bool value);
  157. static MonoArray* internal_GetCharRanges(ScriptFontImportOptions* thisPtr);
  158. static void internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value);
  159. };
  160. /**
  161. * @brief Interop class between C++ & CLR for ScriptCodeImportOptions.
  162. */
  163. class BS_SCR_BED_EXPORT ScriptScriptCodeImportOptions : public ScriptObject <ScriptScriptCodeImportOptions, ScriptImportOptionsBase>
  164. {
  165. public:
  166. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "ScriptCodeImportOptions")
  167. /**
  168. * @brief Creates a new managed ScriptCodeImportOptions instance containing the
  169. * default import options for script code files.
  170. */
  171. static MonoObject* create();
  172. /**
  173. * @brief Creates a new managed ScriptCodeImportOptions instance containing
  174. * the provided import options.
  175. */
  176. static MonoObject* create(const SPtr<ScriptCodeImportOptions>& options);
  177. private:
  178. ScriptScriptCodeImportOptions(MonoObject* instance);
  179. /**
  180. * @brief Returns the internal native import options.
  181. */
  182. SPtr<ScriptCodeImportOptions> getCodeImportOptions();
  183. /************************************************************************/
  184. /* CLR HOOKS */
  185. /************************************************************************/
  186. static void internal_CreateInstance(MonoObject* instance);
  187. static bool internal_IsEditorScript(ScriptScriptCodeImportOptions* thisPtr);
  188. static void internal_SetEditorScript(ScriptScriptCodeImportOptions* thisPtr, bool value);
  189. };
  190. }