ResourceCache.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. //
  2. // ResourceCache C# sugar
  3. //
  4. // Authors:
  5. // Miguel de Icaza ([email protected])
  6. //
  7. // Copyrigh 2015 Xamarin INc
  8. //
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Runtime.InteropServices;
  12. using System.Reflection;
  13. using Urho.Audio;
  14. using Urho.Resources;
  15. using Urho.Gui;
  16. using Urho.Urho2D;
  17. namespace Urho.Resources {
  18. public partial class ResourceCache {
  19. #region Convenience methods to get resources
  20. T GetResource<T> (StringHash type, string name, bool sendEventOnFailure) where T:UrhoObject
  21. {
  22. var ptr = ResourceCache_GetResource (handle, type.Code, name, sendEventOnFailure);
  23. if (ptr == IntPtr.Zero)
  24. return null;
  25. return Runtime.LookupObject<T> (ptr);
  26. }
  27. public Sound GetSound (string name, bool sendEventOnFailure = true)
  28. {
  29. return GetResource<Sound> (Sound.TypeStatic, name, sendEventOnFailure);
  30. }
  31. public Animation GetAnimation (string name, bool sendEventOnFailure = true)
  32. {
  33. return GetResource<Animation> (Animation.TypeStatic, name, sendEventOnFailure);
  34. }
  35. public Material GetMaterial (string name, bool sendEventOnFailure = true)
  36. {
  37. return GetResource<Material> (Material.TypeStatic, name, sendEventOnFailure);
  38. }
  39. public Model GetModel (string name, bool sendEventOnFailure = true)
  40. {
  41. return GetResource<Model> (Model.TypeStatic, name, sendEventOnFailure);
  42. }
  43. public ParticleEffect GetParticleEffect (string name, bool sendEventOnFailure = true)
  44. {
  45. return GetResource<ParticleEffect> (ParticleEffect.TypeStatic, name, sendEventOnFailure);
  46. }
  47. public Shader GetShader (string name, bool sendEventOnFailure = true)
  48. {
  49. return GetResource<Shader> (Shader.TypeStatic, name, sendEventOnFailure);
  50. }
  51. public Technique GetTechnique (string name, bool sendEventOnFailure = true)
  52. {
  53. return GetResource<Technique> (Technique.TypeStatic, name, sendEventOnFailure);
  54. }
  55. public Texture2D GetTexture2D (string name, bool sendEventOnFailure = true)
  56. {
  57. return GetResource<Texture2D> (Texture2D.TypeStatic, name, sendEventOnFailure);
  58. }
  59. public Texture3D GetTexture3D(string name, bool sendEventOnFailure = true)
  60. {
  61. return GetResource<Texture3D>(Texture3D.TypeStatic, name, sendEventOnFailure);
  62. }
  63. public Texture GetTextureCube(string name, bool sendEventOnFailure = true)
  64. {
  65. return GetResource<TextureCube>(TextureCube.TypeStatic, name, sendEventOnFailure);
  66. }
  67. public Image GetImage (string name, bool sendEventOnFailure = true)
  68. {
  69. return GetResource<Image> (Image.TypeStatic, name, sendEventOnFailure);
  70. }
  71. public PListFile GetPListFile (string name, bool sendEventOnFailure = true)
  72. {
  73. return GetResource<PListFile> (PListFile.TypeStatic, name, sendEventOnFailure);
  74. }
  75. public XmlFile GetXmlFile (string name, bool sendEventOnFailure = true)
  76. {
  77. return GetResource<XmlFile> (XmlFile.TypeStatic, name, sendEventOnFailure);
  78. }
  79. public ObjectAnimation GetObjectAnimation (string name, bool sendEventOnFailure = true)
  80. {
  81. return GetResource<ObjectAnimation> (ObjectAnimation.TypeStatic, name, sendEventOnFailure);
  82. }
  83. public ValueAnimation GetValueAnimation (string name, bool sendEventOnFailure = true)
  84. {
  85. return GetResource<ValueAnimation> (ValueAnimation.TypeStatic, name, sendEventOnFailure);
  86. }
  87. public JsonFile GetJsonFile(string name, bool sendEventOnFailure = true)
  88. {
  89. return GetResource<JsonFile>(JsonFile.TypeStatic, name, sendEventOnFailure);
  90. }
  91. #if false
  92. public LuaFile GetLuaFile (string name, bool sendEventOnFailure = true)
  93. {
  94. return GetResource<LuaFile> (LuaFile.TypeStatic, name, sendEventOnFailure);
  95. }
  96. public ScriptFile GetScriptFile (string name, bool sendEventOnFailure = true)
  97. {
  98. return GetResource<ScriptFile> (ScriptFile.TypeStatic, name, sendEventOnFailure);
  99. }
  100. #endif
  101. public Font GetFont (string name, bool sendEventOnFailure = true)
  102. {
  103. return GetResource<Font> (Font.TypeStatic, name, sendEventOnFailure);
  104. }
  105. public AnimationSet2D GetAnimationSet2D (string name, bool sendEventOnFailure = true)
  106. {
  107. return GetResource<AnimationSet2D> (AnimationSet2D.TypeStatic, name, sendEventOnFailure);
  108. }
  109. public ParticleEffect2D GetParticleEffect2D (string name, bool sendEventOnFailure = true)
  110. {
  111. return GetResource<ParticleEffect2D> (ParticleEffect2D.TypeStatic, name, sendEventOnFailure);
  112. }
  113. public Sprite2D GetSprite2D (string name, bool sendEventOnFailure = true)
  114. {
  115. return GetResource<Sprite2D> (Sprite2D.TypeStatic, name, sendEventOnFailure);
  116. }
  117. public SpriteSheet2D GetSpriteSheet2D (string name, bool sendEventOnFailure = true)
  118. {
  119. return GetResource<SpriteSheet2D> (SpriteSheet2D.TypeStatic, name, sendEventOnFailure);
  120. }
  121. public TmxFile2D GetTmxFile2D (string name, bool sendEventOnFailure = true)
  122. {
  123. return GetResource<TmxFile2D> (TmxFile2D.TypeStatic, name, sendEventOnFailure);
  124. }
  125. #endregion
  126. }
  127. }