ShaderVariation.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. // WARNING - AUTOGENERATED - DO NOT EDIT
  2. //
  3. // Generated using `sharpie urho`
  4. //
  5. // ShaderVariation.cs
  6. //
  7. // Copyright 2015 Xamarin Inc. All rights reserved.
  8. using System;
  9. using System.Runtime.InteropServices;
  10. using System.Collections.Generic;
  11. using Urho.Urho2D;
  12. using Urho.Gui;
  13. using Urho.Resources;
  14. using Urho.IO;
  15. using Urho.Navigation;
  16. using Urho.Network;
  17. namespace Urho
  18. {
  19. /// <summary>
  20. /// Vertex or pixel shader on the GPU.
  21. /// </summary>
  22. public unsafe partial class ShaderVariation : RefCounted, IGPUObject
  23. {
  24. unsafe partial void OnShaderVariationCreated ();
  25. [Preserve]
  26. public ShaderVariation (IntPtr handle) : base (handle)
  27. {
  28. OnShaderVariationCreated ();
  29. }
  30. [Preserve]
  31. protected ShaderVariation (UrhoObjectFlag emptyFlag) : base (emptyFlag)
  32. {
  33. OnShaderVariationCreated ();
  34. }
  35. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  36. internal static extern IntPtr ShaderVariation_CastToGPUObject (IntPtr handle);
  37. public GPUObject AsGPUObject ()
  38. {
  39. return new GPUObject (ShaderVariation_CastToGPUObject (handle));
  40. }
  41. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  42. internal static extern IntPtr ShaderVariation_ShaderVariation (IntPtr owner, ShaderType type);
  43. [Preserve]
  44. public ShaderVariation (Shader owner, ShaderType type) : base (UrhoObjectFlag.Empty)
  45. {
  46. Runtime.Validate (typeof(ShaderVariation));
  47. handle = ShaderVariation_ShaderVariation ((object)owner == null ? IntPtr.Zero : owner.Handle, type);
  48. Runtime.RegisterObject (this);
  49. OnShaderVariationCreated ();
  50. }
  51. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  52. internal static extern void ShaderVariation_Release (IntPtr handle);
  53. /// <summary>
  54. /// Release the shader.
  55. /// </summary>
  56. public void Release ()
  57. {
  58. Runtime.ValidateRefCounted (this);
  59. ShaderVariation_Release (handle);
  60. }
  61. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  62. internal static extern bool ShaderVariation_Create (IntPtr handle);
  63. /// <summary>
  64. /// Compile the shader. Return true if successful.
  65. /// </summary>
  66. public bool Create ()
  67. {
  68. Runtime.ValidateRefCounted (this);
  69. return ShaderVariation_Create (handle);
  70. }
  71. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  72. internal static extern void ShaderVariation_SetName (IntPtr handle, string name);
  73. /// <summary>
  74. /// Set name.
  75. /// </summary>
  76. private void SetName (string name)
  77. {
  78. Runtime.ValidateRefCounted (this);
  79. ShaderVariation_SetName (handle, name);
  80. }
  81. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  82. internal static extern void ShaderVariation_SetDefines (IntPtr handle, string defines);
  83. /// <summary>
  84. /// Set defines.
  85. /// </summary>
  86. private void SetDefines (string defines)
  87. {
  88. Runtime.ValidateRefCounted (this);
  89. ShaderVariation_SetDefines (handle, defines);
  90. }
  91. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  92. internal static extern IntPtr ShaderVariation_GetOwner (IntPtr handle);
  93. /// <summary>
  94. /// Return the owner resource.
  95. /// </summary>
  96. private Shader GetOwner ()
  97. {
  98. Runtime.ValidateRefCounted (this);
  99. return Runtime.LookupObject<Shader> (ShaderVariation_GetOwner (handle));
  100. }
  101. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  102. internal static extern ShaderType ShaderVariation_GetShaderType (IntPtr handle);
  103. /// <summary>
  104. /// Return shader type.
  105. /// </summary>
  106. private ShaderType GetShaderType ()
  107. {
  108. Runtime.ValidateRefCounted (this);
  109. return ShaderVariation_GetShaderType (handle);
  110. }
  111. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  112. internal static extern IntPtr ShaderVariation_GetName (IntPtr handle);
  113. /// <summary>
  114. /// Return shader name.
  115. /// </summary>
  116. private string GetName ()
  117. {
  118. Runtime.ValidateRefCounted (this);
  119. return Marshal.PtrToStringAnsi (ShaderVariation_GetName (handle));
  120. }
  121. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  122. internal static extern IntPtr ShaderVariation_GetFullName (IntPtr handle);
  123. /// <summary>
  124. /// Return full shader name.
  125. /// </summary>
  126. private string GetFullName ()
  127. {
  128. Runtime.ValidateRefCounted (this);
  129. return Marshal.PtrToStringAnsi (ShaderVariation_GetFullName (handle));
  130. }
  131. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  132. internal static extern bool ShaderVariation_HasParameter (IntPtr handle, int param);
  133. /// <summary>
  134. /// Return whether uses a parameter. Not applicable on OpenGL, where this information is contained in ShaderProgram instead.
  135. /// </summary>
  136. public bool HasParameter (StringHash param)
  137. {
  138. Runtime.ValidateRefCounted (this);
  139. return ShaderVariation_HasParameter (handle, param.Code);
  140. }
  141. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  142. internal static extern bool ShaderVariation_HasTextureUnit (IntPtr handle, TextureUnit unit);
  143. /// <summary>
  144. /// Return whether uses a texture unit (only for pixel shaders.) Not applicable on OpenGL, where this information is contained in ShaderProgram instead.
  145. /// </summary>
  146. public bool HasTextureUnit (TextureUnit unit)
  147. {
  148. Runtime.ValidateRefCounted (this);
  149. return ShaderVariation_HasTextureUnit (handle, unit);
  150. }
  151. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  152. internal static extern ulong ShaderVariation_GetElementHash (IntPtr handle);
  153. /// <summary>
  154. /// Return vertex element hash.
  155. /// </summary>
  156. private ulong GetElementHash ()
  157. {
  158. Runtime.ValidateRefCounted (this);
  159. return ShaderVariation_GetElementHash (handle);
  160. }
  161. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  162. internal static extern IntPtr ShaderVariation_GetDefines (IntPtr handle);
  163. /// <summary>
  164. /// Return defines.
  165. /// </summary>
  166. private string GetDefines ()
  167. {
  168. Runtime.ValidateRefCounted (this);
  169. return Marshal.PtrToStringAnsi (ShaderVariation_GetDefines (handle));
  170. }
  171. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  172. internal static extern IntPtr ShaderVariation_GetCompilerOutput (IntPtr handle);
  173. /// <summary>
  174. /// Return compile error/warning string.
  175. /// </summary>
  176. private string GetCompilerOutput ()
  177. {
  178. Runtime.ValidateRefCounted (this);
  179. return Marshal.PtrToStringAnsi (ShaderVariation_GetCompilerOutput (handle));
  180. }
  181. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  182. internal static extern uint* ShaderVariation_GetConstantBufferSizes (IntPtr handle);
  183. /// <summary>
  184. /// Return constant buffer data sizes.
  185. /// </summary>
  186. private uint* GetConstantBufferSizes ()
  187. {
  188. Runtime.ValidateRefCounted (this);
  189. return ShaderVariation_GetConstantBufferSizes (handle);
  190. }
  191. [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  192. internal static extern IntPtr ShaderVariation_GetDefinesClipPlane (IntPtr handle);
  193. /// <summary>
  194. /// Return defines with the CLIPPLANE define appended. Used internally on Direct3D11 only, will be empty on other APIs.
  195. /// </summary>
  196. private string GetDefinesClipPlane ()
  197. {
  198. Runtime.ValidateRefCounted (this);
  199. return Marshal.PtrToStringAnsi (ShaderVariation_GetDefinesClipPlane (handle));
  200. }
  201. /// <summary>
  202. /// Return shader name.
  203. /// Or
  204. /// Set name.
  205. /// </summary>
  206. public string Name {
  207. get {
  208. return GetName ();
  209. }
  210. set {
  211. SetName (value);
  212. }
  213. }
  214. /// <summary>
  215. /// Return defines.
  216. /// Or
  217. /// Set defines.
  218. /// </summary>
  219. public string Defines {
  220. get {
  221. return GetDefines ();
  222. }
  223. set {
  224. SetDefines (value);
  225. }
  226. }
  227. /// <summary>
  228. /// Return the owner resource.
  229. /// </summary>
  230. public Shader Owner {
  231. get {
  232. return GetOwner ();
  233. }
  234. }
  235. /// <summary>
  236. /// Return shader type.
  237. /// </summary>
  238. public ShaderType ShaderType {
  239. get {
  240. return GetShaderType ();
  241. }
  242. }
  243. /// <summary>
  244. /// Return full shader name.
  245. /// </summary>
  246. public string FullName {
  247. get {
  248. return GetFullName ();
  249. }
  250. }
  251. /// <summary>
  252. /// Return vertex element hash.
  253. /// </summary>
  254. public ulong ElementHash {
  255. get {
  256. return GetElementHash ();
  257. }
  258. }
  259. /// <summary>
  260. /// Return compile error/warning string.
  261. /// </summary>
  262. public string CompilerOutput {
  263. get {
  264. return GetCompilerOutput ();
  265. }
  266. }
  267. /// <summary>
  268. /// Return constant buffer data sizes.
  269. /// </summary>
  270. public uint* ConstantBufferSizes {
  271. get {
  272. return GetConstantBufferSizes ();
  273. }
  274. }
  275. /// <summary>
  276. /// Return defines with the CLIPPLANE define appended. Used internally on Direct3D11 only, will be empty on other APIs.
  277. /// </summary>
  278. public string DefinesClipPlane {
  279. get {
  280. return GetDefinesClipPlane ();
  281. }
  282. }
  283. }
  284. }