BsScriptImportOptions.h 8.8 KB

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