ImportOptions.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. /// <summary>
  7. /// Base class for all import options. Import options allow control over how is a specific resource type imported.
  8. /// </summary>
  9. public class ImportOptions : ScriptObject
  10. {
  11. }
  12. /// <summary>
  13. /// Import options that provide various options for controlling how is a texture file imported.
  14. /// </summary>
  15. public class TextureImportOptions : ImportOptions
  16. {
  17. /// <summary>
  18. /// Creates new texture import options with default values.
  19. /// </summary>
  20. public TextureImportOptions()
  21. {
  22. Internal_CreateInstance(this);
  23. }
  24. /// <summary>
  25. /// Pixel format to import as.
  26. /// </summary>
  27. public PixelFormat Format
  28. {
  29. get { return Internal_GetPixelFormat(mCachedPtr); }
  30. set { Internal_SetPixelFormat(mCachedPtr, value); }
  31. }
  32. /// <summary>
  33. /// Determines whether the imported texture will have mipmaps generated.
  34. /// </summary>
  35. public bool GenerateMipmaps
  36. {
  37. get { return Internal_GetGenerateMipmaps(mCachedPtr); }
  38. set { Internal_SetGenerateMipmaps(mCachedPtr, value); }
  39. }
  40. /// <summary>
  41. /// Maximum mipmap level to generate, if mipmap generation is enabled.
  42. /// </summary>
  43. public UInt32 MaxMipmapLevel
  44. {
  45. get { return Internal_GetMaxMipmapLevel(mCachedPtr); }
  46. set { Internal_SetMaxMipmapLevel(mCachedPtr, value); }
  47. }
  48. [MethodImpl(MethodImplOptions.InternalCall)]
  49. private static extern void Internal_CreateInstance(TextureImportOptions instance);
  50. [MethodImpl(MethodImplOptions.InternalCall)]
  51. private static extern PixelFormat Internal_GetPixelFormat(IntPtr thisPtr);
  52. [MethodImpl(MethodImplOptions.InternalCall)]
  53. private static extern void Internal_SetPixelFormat(IntPtr thisPtr, PixelFormat value);
  54. [MethodImpl(MethodImplOptions.InternalCall)]
  55. private static extern bool Internal_GetGenerateMipmaps(IntPtr thisPtr);
  56. [MethodImpl(MethodImplOptions.InternalCall)]
  57. private static extern void Internal_SetGenerateMipmaps(IntPtr thisPtr, bool value);
  58. [MethodImpl(MethodImplOptions.InternalCall)]
  59. private static extern UInt32 Internal_GetMaxMipmapLevel(IntPtr thisPtr);
  60. [MethodImpl(MethodImplOptions.InternalCall)]
  61. private static extern void Internal_SetMaxMipmapLevel(IntPtr thisPtr, UInt32 value);
  62. }
  63. /// <summary>
  64. /// Import options that provide various options for controlling how is a font file imported.
  65. /// </summary>
  66. public class FontImportOptions : ImportOptions
  67. {
  68. /// <summary>
  69. /// Creates new font import options with default values.
  70. /// </summary>
  71. public FontImportOptions()
  72. {
  73. Internal_CreateInstance(this);
  74. }
  75. /// <summary>
  76. /// Font sizes in points that are to be imported.
  77. /// </summary>
  78. public UInt32[] FontSizes
  79. {
  80. get { return Internal_GetFontSizes(mCachedPtr); }
  81. set { Internal_SetFontSizes(mCachedPtr, value); }
  82. }
  83. /// <summary>
  84. /// Dots per inch resolution to use when rendering the characters into the texture.
  85. /// </summary>
  86. public UInt32 DPI
  87. {
  88. get { return Internal_GetDPI(mCachedPtr); }
  89. set { Internal_SetDPI(mCachedPtr, value); }
  90. }
  91. /// <summary>
  92. /// Determines should rendered characters be antialiased.
  93. /// </summary>
  94. public bool Antialiasing
  95. {
  96. get { return Internal_GetAntialiasing(mCachedPtr); }
  97. set { Internal_SetAntialiasing(mCachedPtr, value); }
  98. }
  99. /// <summary>
  100. /// Determines character ranges to import from the font. Ranges are defined as unicode numbers.
  101. /// </summary>
  102. public CharRange[] CharRanges
  103. {
  104. get { return Internal_GetCharRanges(mCachedPtr); }
  105. set { Internal_SetCharRanges(mCachedPtr, value); }
  106. }
  107. [MethodImpl(MethodImplOptions.InternalCall)]
  108. private static extern void Internal_CreateInstance(FontImportOptions instance);
  109. [MethodImpl(MethodImplOptions.InternalCall)]
  110. private static extern UInt32[] Internal_GetFontSizes(IntPtr thisPtr);
  111. [MethodImpl(MethodImplOptions.InternalCall)]
  112. private static extern void Internal_SetFontSizes(IntPtr thisPtr, UInt32[] value);
  113. [MethodImpl(MethodImplOptions.InternalCall)]
  114. private static extern UInt32 Internal_GetDPI(IntPtr thisPtr);
  115. [MethodImpl(MethodImplOptions.InternalCall)]
  116. private static extern void Internal_SetDPI(IntPtr thisPtr, UInt32 value);
  117. [MethodImpl(MethodImplOptions.InternalCall)]
  118. private static extern bool Internal_GetAntialiasing(IntPtr thisPtr);
  119. [MethodImpl(MethodImplOptions.InternalCall)]
  120. private static extern void Internal_SetAntialiasing(IntPtr thisPtr, bool value);
  121. [MethodImpl(MethodImplOptions.InternalCall)]
  122. private static extern CharRange[] Internal_GetCharRanges(IntPtr thisPtr);
  123. [MethodImpl(MethodImplOptions.InternalCall)]
  124. private static extern void Internal_SetCharRanges(IntPtr thisPtr, CharRange[] value);
  125. }
  126. /// <summary>
  127. /// Import options that provide various options for controlling how is a script file imported.
  128. /// </summary>
  129. public class ScriptCodeImportOptions : ImportOptions
  130. {
  131. /// <summary>
  132. /// Creates new script import options with default values.
  133. /// </summary>
  134. public ScriptCodeImportOptions()
  135. {
  136. Internal_CreateInstance(this);
  137. }
  138. /// <summary>
  139. /// Determines whether the script is editor-only or a normal game script. Editor scripts are compiled in a separate
  140. /// assembly and may reference editor specific functionality, but are not available in the final game code.
  141. /// </summary>
  142. public bool EditorScript
  143. {
  144. get { return Internal_IsEditorScript(mCachedPtr); }
  145. set { Internal_SetEditorScript(mCachedPtr, value); }
  146. }
  147. [MethodImpl(MethodImplOptions.InternalCall)]
  148. private static extern void Internal_CreateInstance(ScriptCodeImportOptions instance);
  149. [MethodImpl(MethodImplOptions.InternalCall)]
  150. private static extern bool Internal_IsEditorScript(IntPtr thisPtr);
  151. [MethodImpl(MethodImplOptions.InternalCall)]
  152. private static extern void Internal_SetEditorScript(IntPtr thisPtr, bool value);
  153. }
  154. }