Shader.xml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. <Type Name="Shader" FullName="Urho.Shader">
  2. <TypeSignature Language="C#" Value="public class Shader : Urho.Resources.Resource" />
  3. <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Shader extends Urho.Resources.Resource" />
  4. <AssemblyInfo>
  5. <AssemblyName>Urho</AssemblyName>
  6. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  7. </AssemblyInfo>
  8. <Base>
  9. <BaseTypeName>Urho.Resources.Resource</BaseTypeName>
  10. </Base>
  11. <Interfaces />
  12. <Docs>
  13. <summary>Shader resource consisting of several shader variations.</summary>
  14. <remarks>
  15. <para>
  16. Urho3D uses an ubershader-like approach: permutations of each
  17. shader will be built with different compilation defines, to
  18. produce eg. static or skinned, deferred or forward or
  19. shadowed/unshadowed rendering.
  20. </para>
  21. <para>
  22. The building of these permutations happens on demand:
  23. technique and renderpath definition files both refer to
  24. shaders and the compilation defines to use with them. In
  25. addition the engine will add inbuilt defines related to
  26. geometry type and lighting. It is not generally possible to
  27. enumerate beforehand all the possible permutations that can be
  28. built out of a single shader.
  29. </para>
  30. <para>
  31. On Direct3D compiled shader bytecode is saved to disk in a
  32. "Cache" subdirectory next to the shader source code, so that
  33. the possibly time-consuming compile can be skipped on the next
  34. time the shader permutation is needed. On OpenGL such
  35. mechanism is not available.
  36. </para>
  37. <format type="text/html">
  38. <h2>Built-in Compilation Defines</h2>
  39. </format>
  40. <para>
  41. When rendering scene objects, the engine expects certain
  42. shader permutations to exist for different geometry types and
  43. lighting conditions. These correspond to the following
  44. compilation defines:
  45. </para>
  46. <format type="text/html">
  47. <h2>Built-in Shader Uniforms</h2>
  48. </format>
  49. <para>
  50. When objects or quad passes are being rendered, various engine
  51. inbuilt uniforms are set to assist with the rendering. Below
  52. is a partial list of the uniforms listed as HLSL data
  53. types. Look at the file Uniforms.glsl for the corresponding
  54. GLSL uniforms.
  55. </para>
  56. <format type="text/html">
  57. <h2>Writing Shaders</h2>
  58. </format>
  59. <para>
  60. Shaders must be written separately for HLSL (Direct3D) and
  61. GLSL (OpenGL). The built-in shaders try to implement the same
  62. functionality on both shader languages as closely as possible.
  63. </para>
  64. <para>
  65. To get started with writing your own shaders, start with
  66. studying the most basic examples possible: the Basic, Shadow and
  67. Unlit shaders. Note the shader include files which bring
  68. common functionality, for example Uniforms.hlsl, Samplers.hlsl
  69. and Transform.hlsl for HLSL shaders.
  70. </para>
  71. <para>
  72. Transforming the vertex (which hides the actual skinning,
  73. instancing or billboarding process) is a slight hack which
  74. uses a combination of macros and functions: it is safest to
  75. copy the following piece of code verbatim:
  76. </para>
  77. <para>
  78. For HLSL:
  79. </para>
  80. <para>
  81. Shaders must be written separately for HLSL (Direct3D) and
  82. GLSL (OpenGL). The built-in shaders try to implement the same
  83. functionality on both shader languages as closely as possible.
  84. </para>
  85. <para>
  86. To get started with writing your own shaders, start with
  87. studying the most basic examples possible: the Basic, Shadow and
  88. Unlit shaders. Note the shader include files which bring
  89. common functionality, for example Uniforms.hlsl, Samplers.hlsl
  90. and Transform.hlsl for HLSL shaders.
  91. </para>
  92. <para>
  93. Transforming the vertex (which hides the actual skinning,
  94. instancing or billboarding process) is a slight hack which
  95. uses a combination of macros and functions: it is safest to
  96. copy the following piece of code verbatim:
  97. </para>
  98. <para>
  99. For HLSL:
  100. </para>
  101. <para>
  102. On both Direct3D and OpenGL the vertex and pixel shaders are
  103. written into the same file, and the entrypoint functions must
  104. be called VS() and PS(). In OpenGL mode one of these is
  105. transformed to the main() function required by GLSL behind the
  106. scenes. When compiling a vertex shader, the compilation define
  107. "COMPILEVS" is always present, and likewise "COMPILEPS" when
  108. compiling a pixel shader. These are heavily used in the shader
  109. include files to prevent constructs that are illegal for the
  110. "wrong" type of shader, and to reduce compilation time.
  111. </para>
  112. <para>
  113. The uniforms must be prefixed in a certain way so that the
  114. engine understands them:
  115. </para>
  116. <list type="bullet">
  117. <item>
  118. <term>
  119. c for uniform constants, for example cMatDiffColor. The c is stripped when referred to inside the engine, so it would be called "MatDiffColor" in eg. <see cref="M:Urho.Material.SetShaderParameter" /></term>
  120. </item>
  121. <item>
  122. <term>
  123. s for texture samplers, for example sDiffMap.
  124. </term>
  125. </item>
  126. </list>
  127. <para>
  128. In GLSL shaders it is important that the samplers are assigned to
  129. the correct texture units. If you are using sampler names that are
  130. not predefined in the engine like sDiffMap, just make sure there is
  131. a number somewhere in the sampler's name and it will be interpreted
  132. as the texture unit. For example the terrain shader uses texture
  133. units 0-3 in the following way:
  134. </para>
  135. <code lang="C#"><![CDATA[
  136. uniform sampler2D sWeightMap0;
  137. uniform sampler2D sDetailMap1;
  138. uniform sampler2D sDetailMap2;
  139. uniform sampler2D sDetailMap3;]]></code>
  140. <para>
  141. The maximum number of bones supported for hardware skinning depends
  142. on the graphics API and is relayed to the shader code in the
  143. MAXBONES compilation define. Typically the maximum is 64, but is
  144. reduced to 32 on the Raspberry PI, and increased to 128 on Direct3D
  145. 11 and OpenGL 3. See also <see cref="P:Urho.Graphics.MaxBones" />.
  146. </para>
  147. <format type="text/html">
  148. <h2>API Differences</h2>
  149. </format>
  150. <para>
  151. Direct3D9 and Direct3D11 share the same HLSL shader code, and
  152. likewise OpenGL 2, OpenGL 3, OpenGL ES 2 and WebGL share the
  153. same GLSL code. Macros and some conditional code are used to
  154. hide the API differences where possible.
  155. </para>
  156. <para>
  157. When HLSL shaders are compiled for Direct3D11, the define
  158. D3D11 is present, and the following details need to be
  159. observed:
  160. </para>
  161. <list type="bullet">
  162. <item>
  163. <term>
  164. Uniforms are organized into constant buffers. See the file
  165. Uniforms.hlsl for the built-in uniforms. See
  166. TerrainBlend.hlsl for an example of defining your own
  167. uniforms into the "custom" constant buffer slot.
  168. </term>
  169. </item>
  170. <item>
  171. <term>
  172. Both textures and samplers are defined for each texture
  173. unit. The macros in Samplers.hlsl (Sample2D, SampleCube
  174. etc.) can be used to write code that works on both
  175. APIs. These take the texture unit name without the 's'
  176. prefix.
  177. </term>
  178. </item>
  179. <item>
  180. <term>
  181. Vertex shader output position and pixel shader output
  182. color need to use the SV_POSITION and SV_TARGET
  183. semantics. The macros OUTPOSITION and OUTCOLOR0-3 can be
  184. used to select the correct semantic on both APIs. In the
  185. vertex shader, the output position should be specified
  186. last, as otherwise other interpolator outputs may not
  187. function correctly.
  188. </term>
  189. </item>
  190. <item>
  191. <term>
  192. On Direct3D11 the clip plane coordinate must be calculated
  193. manually. This is indicated by the CLIPPLANE compilation
  194. define, which is added automatically by the <see cref="T:Urho.Graphics" />
  195. class. See for example the LitSolid.hlsl shader.
  196. </term>
  197. </item>
  198. <item>
  199. <term>
  200. Direct3D11 does not support luminance and luminance-alpha
  201. texture formats, but rather uses the R and RG
  202. channels. Therefore be prepared to perform swizzling in
  203. the texture reads as appropriate.
  204. </term>
  205. </item>
  206. <item>
  207. <term>
  208. Direct3D11 will fail to render if the vertex shader refers
  209. to vertex elements that don't exist in the vertex buffers.
  210. </term>
  211. </item>
  212. </list>
  213. <para>
  214. For OpenGL, the define GL3 is present when GLSL shaders are
  215. being compiled for OpenGL 3+, the define GL_ES is present for
  216. OpenGL ES 2, WEBGL define is present for WebGL and RPI define
  217. is present for the Raspberry Pi. Observe the following
  218. differences:
  219. </para>
  220. <list type="bullet">
  221. <item>
  222. <term>
  223. On OpenGL 3 GLSL version 150 will be used if the shader
  224. source code does not define the version. The texture
  225. sampling functions are different but are worked around
  226. with defines in the file Samplers.glsl. Likewise the file
  227. Transform.glsl contains macros to hide the differences in
  228. declaring vertex attributes, interpolators and fragment
  229. outputs.
  230. </term>
  231. </item>
  232. <item>
  233. <term>
  234. On OpenGL 3 luminance, alpha and luminance-alpha texture
  235. formats are deprecated, and are replaced with R and RG
  236. formats. Therefore be prepared to perform swizzling in the
  237. texture reads as appropriate.
  238. </term>
  239. </item>
  240. <item>
  241. <term>
  242. On OpenGL ES 2 precision qualifiers need to be used.
  243. </term>
  244. </item>
  245. </list>
  246. <format type="text/html">
  247. <h2>Shader Precaching</h2>
  248. </format>
  249. <para>
  250. The shader variations that are potentially used by a material
  251. technique in different lighting conditions and rendering
  252. passes are enumerated at material load time, but because of
  253. their large amount, they are not actually compiled or loaded
  254. from bytecode before being used in rendering. Especially on
  255. OpenGL the compiling of shaders just before rendering can
  256. cause hitches in the framerate. To avoid this, used shader
  257. combinations can be dumped out to an XML file, then
  258. preloaded. See <see cref="T:Urho.Graphics.BeginDumpShaders" />, <see cref="T:Urho.Graphics.EndDumpShaders" /> and
  259. <see cref="T:Urho.Graphics.PrecacheShaders" /> in the <see cref="T:Urho.Graphics" /> subsystem. The command line
  260. parameters -ds FILE can be used to instruct the <see cref="T:Urho.Engine" /> to
  261. begin dumping shaders automatically on startup.
  262. </para>
  263. <para>
  264. Note that the used shader variations will vary with graphics
  265. settings, for example shadow quality high/low or instancing
  266. on/off.
  267. </para>
  268. </remarks>
  269. </Docs>
  270. <Members>
  271. <Member MemberName=".ctor">
  272. <MemberSignature Language="C#" Value="public Shader ();" />
  273. <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
  274. <MemberType>Constructor</MemberType>
  275. <AssemblyInfo>
  276. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  277. </AssemblyInfo>
  278. <Attributes>
  279. <Attribute>
  280. <AttributeName>Preserve</AttributeName>
  281. </Attribute>
  282. </Attributes>
  283. <Parameters />
  284. <Docs>
  285. <summary>
  286. <para>Constructs a new instance of Urho.Shader which is tied to the <see cref="P:Urho.Application.CurrentContext" />.</para>
  287. </summary>
  288. <remarks>
  289. </remarks>
  290. </Docs>
  291. </Member>
  292. <Member MemberName=".ctor">
  293. <MemberSignature Language="C#" Value="public Shader (IntPtr handle);" />
  294. <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(native int handle) cil managed" />
  295. <MemberType>Constructor</MemberType>
  296. <AssemblyInfo>
  297. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  298. </AssemblyInfo>
  299. <Attributes>
  300. <Attribute>
  301. <AttributeName>Preserve</AttributeName>
  302. </Attribute>
  303. </Attributes>
  304. <Parameters>
  305. <Parameter Name="handle" Type="System.IntPtr" />
  306. </Parameters>
  307. <Docs>
  308. <param name="handle">Pointer to the raw unmanaged Urho object.</param>
  309. <summary>Constructs a new instance of Urho.Shader, given a raw pointer to an unmanaged object</summary>
  310. <remarks>
  311. <para>This creates a new managed wrapper for the type using the raw pointer to an unmanaged object.</para>
  312. <para>Objects that are created in this fashion get registered with the UrhoSharp runtime.</para>
  313. <para>This is intended to be used by the UrhoSharp runtime, and is not intended to be used by users.</para>
  314. </remarks>
  315. </Docs>
  316. </Member>
  317. <Member MemberName=".ctor">
  318. <MemberSignature Language="C#" Value="public Shader (Urho.Context context);" />
  319. <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class Urho.Context context) cil managed" />
  320. <MemberType>Constructor</MemberType>
  321. <AssemblyInfo>
  322. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  323. </AssemblyInfo>
  324. <Attributes>
  325. <Attribute>
  326. <AttributeName>Preserve</AttributeName>
  327. </Attribute>
  328. </Attributes>
  329. <Parameters>
  330. <Parameter Name="context" Type="Urho.Context" />
  331. </Parameters>
  332. <Docs>
  333. <param name="context">The context that this object will be attached to.</param>
  334. <summary>
  335. <para>Constructs a new instance of Urho.Shader linked to a specific <see cref="T:Urho.Context" />.</para>
  336. </summary>
  337. <remarks>
  338. </remarks>
  339. </Docs>
  340. </Member>
  341. <Member MemberName=".ctor">
  342. <MemberSignature Language="C#" Value="protected Shader (Urho.UrhoObjectFlag emptyFlag);" />
  343. <MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor(valuetype Urho.UrhoObjectFlag emptyFlag) cil managed" />
  344. <MemberType>Constructor</MemberType>
  345. <AssemblyInfo>
  346. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  347. </AssemblyInfo>
  348. <Attributes>
  349. <Attribute>
  350. <AttributeName>Preserve</AttributeName>
  351. </Attribute>
  352. </Attributes>
  353. <Parameters>
  354. <Parameter Name="emptyFlag" Type="Urho.UrhoObjectFlag" />
  355. </Parameters>
  356. <Docs>
  357. <param name="emptyFlag">Pass UrhoObjectFlag.Empty.</param>
  358. <summary>Empty constructor, chain to this constructor when you provide your own constructor that sets the handle field.</summary>
  359. <remarks>
  360. <para>This constructor should be invoked by your code if you provide your own constructor that sets the handle field.</para>
  361. <para>This essentially circumvents the default path that creates a new object and sets the handle and does not call RegisterObject on the target, you must do this on your own constructor.</para>
  362. <para>You would typically chain to this constructor from your own, and then set the handle to the unmanaged object from your code, and then register your object.</para>
  363. </remarks>
  364. </Docs>
  365. </Member>
  366. <Member MemberName="BeginLoad">
  367. <MemberSignature Language="C#" Value="public override bool BeginLoad (Urho.IO.File source);" />
  368. <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool BeginLoad(class Urho.IO.File source) cil managed" />
  369. <MemberType>Method</MemberType>
  370. <AssemblyInfo>
  371. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  372. </AssemblyInfo>
  373. <ReturnValue>
  374. <ReturnType>System.Boolean</ReturnType>
  375. </ReturnValue>
  376. <Parameters>
  377. <Parameter Name="source" Type="Urho.IO.File" />
  378. </Parameters>
  379. <Docs>
  380. <param name="source">To be added.</param>
  381. <summary>To be added.</summary>
  382. <returns>To be added.</returns>
  383. <remarks>To be added.</remarks>
  384. </Docs>
  385. </Member>
  386. <Member MemberName="BeginLoad">
  387. <MemberSignature Language="C#" Value="public override bool BeginLoad (Urho.MemoryBuffer source);" />
  388. <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool BeginLoad(class Urho.MemoryBuffer source) cil managed" />
  389. <MemberType>Method</MemberType>
  390. <AssemblyInfo>
  391. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  392. </AssemblyInfo>
  393. <ReturnValue>
  394. <ReturnType>System.Boolean</ReturnType>
  395. </ReturnValue>
  396. <Parameters>
  397. <Parameter Name="source" Type="Urho.MemoryBuffer" />
  398. </Parameters>
  399. <Docs>
  400. <param name="source">To be added.</param>
  401. <summary>To be added.</summary>
  402. <returns>To be added.</returns>
  403. <remarks>To be added.</remarks>
  404. </Docs>
  405. </Member>
  406. <Member MemberName="EndLoad">
  407. <MemberSignature Language="C#" Value="public override bool EndLoad ();" />
  408. <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool EndLoad() cil managed" />
  409. <MemberType>Method</MemberType>
  410. <AssemblyInfo>
  411. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  412. </AssemblyInfo>
  413. <ReturnValue>
  414. <ReturnType>System.Boolean</ReturnType>
  415. </ReturnValue>
  416. <Parameters />
  417. <Docs>
  418. <summary>
  419. Finish resource loading. Always called from the main thread. Return true if successful.
  420. </summary>
  421. <returns>To be added.</returns>
  422. <remarks>To be added.</remarks>
  423. </Docs>
  424. </Member>
  425. <Member MemberName="GetSourceCode">
  426. <MemberSignature Language="C#" Value="public string GetSourceCode (Urho.ShaderType type);" />
  427. <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string GetSourceCode(valuetype Urho.ShaderType type) cil managed" />
  428. <MemberType>Method</MemberType>
  429. <AssemblyInfo>
  430. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  431. </AssemblyInfo>
  432. <ReturnValue>
  433. <ReturnType>System.String</ReturnType>
  434. </ReturnValue>
  435. <Parameters>
  436. <Parameter Name="type" Type="Urho.ShaderType" />
  437. </Parameters>
  438. <Docs>
  439. <param name="type">To be added.</param>
  440. <summary>
  441. Return either vertex or pixel shader source code.
  442. </summary>
  443. <returns>To be added.</returns>
  444. <remarks>To be added.</remarks>
  445. </Docs>
  446. </Member>
  447. <Member MemberName="GetVariation">
  448. <MemberSignature Language="C#" Value="public Urho.ShaderVariation GetVariation (Urho.ShaderType type, string defines);" />
  449. <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Urho.ShaderVariation GetVariation(valuetype Urho.ShaderType type, string defines) cil managed" />
  450. <MemberType>Method</MemberType>
  451. <AssemblyInfo>
  452. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  453. </AssemblyInfo>
  454. <ReturnValue>
  455. <ReturnType>Urho.ShaderVariation</ReturnType>
  456. </ReturnValue>
  457. <Parameters>
  458. <Parameter Name="type" Type="Urho.ShaderType" />
  459. <Parameter Name="defines" Type="System.String" />
  460. </Parameters>
  461. <Docs>
  462. <param name="type">To be added.</param>
  463. <param name="defines">To be added.</param>
  464. <summary>
  465. Return a variation with defines.
  466. </summary>
  467. <returns>To be added.</returns>
  468. <remarks>To be added.</remarks>
  469. </Docs>
  470. </Member>
  471. <Member MemberName="RegisterObject">
  472. <MemberSignature Language="C#" Value="public static void RegisterObject (Urho.Context context);" />
  473. <MemberSignature Language="ILAsm" Value=".method public static hidebysig void RegisterObject(class Urho.Context context) cil managed" />
  474. <MemberType>Method</MemberType>
  475. <AssemblyInfo>
  476. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  477. </AssemblyInfo>
  478. <ReturnValue>
  479. <ReturnType>System.Void</ReturnType>
  480. </ReturnValue>
  481. <Parameters>
  482. <Parameter Name="context" Type="Urho.Context" />
  483. </Parameters>
  484. <Docs>
  485. <param name="context">To be added.</param>
  486. <summary>
  487. Register object factory.
  488. </summary>
  489. <remarks>To be added.</remarks>
  490. </Docs>
  491. </Member>
  492. <Member MemberName="TimeStamp">
  493. <MemberSignature Language="C#" Value="public uint TimeStamp { get; }" />
  494. <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 TimeStamp" />
  495. <MemberType>Property</MemberType>
  496. <AssemblyInfo>
  497. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  498. </AssemblyInfo>
  499. <ReturnValue>
  500. <ReturnType>System.UInt32</ReturnType>
  501. </ReturnValue>
  502. <Docs>
  503. <summary>
  504. Return the latest timestamp of the shader code and its includes.
  505. </summary>
  506. <value>To be added.</value>
  507. <remarks>To be added.</remarks>
  508. </Docs>
  509. </Member>
  510. <Member MemberName="Type">
  511. <MemberSignature Language="C#" Value="public override Urho.StringHash Type { get; }" />
  512. <MemberSignature Language="ILAsm" Value=".property instance valuetype Urho.StringHash Type" />
  513. <MemberType>Property</MemberType>
  514. <AssemblyInfo>
  515. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  516. </AssemblyInfo>
  517. <ReturnValue>
  518. <ReturnType>Urho.StringHash</ReturnType>
  519. </ReturnValue>
  520. <Docs>
  521. <summary>Urho's type system type.</summary>
  522. <value>StringHash representing the type for this C# type.</value>
  523. <remarks>This returns the Urho's type and is surfaced for low-level Urho code.</remarks>
  524. </Docs>
  525. </Member>
  526. <Member MemberName="TypeName">
  527. <MemberSignature Language="C#" Value="public override string TypeName { get; }" />
  528. <MemberSignature Language="ILAsm" Value=".property instance string TypeName" />
  529. <MemberType>Property</MemberType>
  530. <AssemblyInfo>
  531. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  532. </AssemblyInfo>
  533. <ReturnValue>
  534. <ReturnType>System.String</ReturnType>
  535. </ReturnValue>
  536. <Docs>
  537. <summary>Urho's low-level type name.</summary>
  538. <value>Stringified low-level type name.</value>
  539. <remarks>
  540. </remarks>
  541. </Docs>
  542. </Member>
  543. <Member MemberName="TypeNameStatic">
  544. <MemberSignature Language="C#" Value="public static string TypeNameStatic { get; }" />
  545. <MemberSignature Language="ILAsm" Value=".property string TypeNameStatic" />
  546. <MemberType>Property</MemberType>
  547. <AssemblyInfo>
  548. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  549. </AssemblyInfo>
  550. <ReturnValue>
  551. <ReturnType>System.String</ReturnType>
  552. </ReturnValue>
  553. <Docs>
  554. <summary>Urho's low-level type name, accessible as a static method.</summary>
  555. <value>Stringified low-level type name.</value>
  556. <remarks>
  557. </remarks>
  558. </Docs>
  559. </Member>
  560. <Member MemberName="TypeStatic">
  561. <MemberSignature Language="C#" Value="public static Urho.StringHash TypeStatic { get; }" />
  562. <MemberSignature Language="ILAsm" Value=".property valuetype Urho.StringHash TypeStatic" />
  563. <MemberType>Property</MemberType>
  564. <AssemblyInfo>
  565. <AssemblyVersion>1.0.0.0</AssemblyVersion>
  566. </AssemblyInfo>
  567. <Attributes>
  568. <Attribute>
  569. <AttributeName>Preserve</AttributeName>
  570. </Attribute>
  571. </Attributes>
  572. <ReturnValue>
  573. <ReturnType>Urho.StringHash</ReturnType>
  574. </ReturnValue>
  575. <Docs>
  576. <summary>Urho's low-level type, accessible as a static method.</summary>
  577. <value>This returns the Urho's type and is surface for the low-level Urho code.</value>
  578. <remarks>
  579. </remarks>
  580. </Docs>
  581. </Member>
  582. </Members>
  583. </Type>