GUITexture.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public enum GUIImageScaleMode
  6. {
  7. StretchToFit,
  8. ScaleToFit,
  9. CropToFit,
  10. RepeatToFit
  11. };
  12. public sealed class GUITexture : GUIElement
  13. {
  14. public GUITexture(SpriteTexture texture, GUIImageScaleMode scale, bool transparent, string style, params GUIOption[] options)
  15. {
  16. Internal_CreateInstance(this, texture, scale, transparent, style, options);
  17. }
  18. public GUITexture(SpriteTexture texture, GUIImageScaleMode scale, bool transparent, params GUIOption[] options)
  19. {
  20. Internal_CreateInstance(this, texture, scale, transparent, "", options);
  21. }
  22. public GUITexture(SpriteTexture texture, bool transparent, string style, params GUIOption[] options)
  23. {
  24. Internal_CreateInstance(this, texture, GUIImageScaleMode.StretchToFit, transparent, style, options);
  25. }
  26. public GUITexture(SpriteTexture texture, bool transparent, params GUIOption[] options)
  27. {
  28. Internal_CreateInstance(this, texture, GUIImageScaleMode.StretchToFit, transparent, "", options);
  29. }
  30. public GUITexture(SpriteTexture texture, GUIImageScaleMode scale, string style, params GUIOption[] options)
  31. {
  32. Internal_CreateInstance(this, texture, scale, true, style, options);
  33. }
  34. public GUITexture(SpriteTexture texture, GUIImageScaleMode scale, params GUIOption[] options)
  35. {
  36. Internal_CreateInstance(this, texture, scale, true, "", options);
  37. }
  38. public GUITexture(SpriteTexture texture, string style, params GUIOption[] options)
  39. {
  40. Internal_CreateInstance(this, texture, GUIImageScaleMode.StretchToFit, true, style, options);
  41. }
  42. public GUITexture(SpriteTexture texture, params GUIOption[] options)
  43. {
  44. Internal_CreateInstance(this, texture, GUIImageScaleMode.StretchToFit, true, "", options);
  45. }
  46. public void SetTexture(SpriteTexture texture)
  47. {
  48. Internal_SetTexture(mCachedPtr, texture);
  49. }
  50. [MethodImpl(MethodImplOptions.InternalCall)]
  51. private static extern void Internal_CreateInstance(GUITexture instance, SpriteTexture texture,
  52. GUIImageScaleMode scale, bool transparent, string style, GUIOption[] options);
  53. [MethodImpl(MethodImplOptions.InternalCall)]
  54. private static extern void Internal_SetTexture(IntPtr nativeInstance, SpriteTexture texture);
  55. }
  56. }