MPImageUtility.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using UnityEngine;
  3. namespace MPUIKIT {
  4. internal class MPImageUtility {
  5. internal static void FixAdditionalShaderChannelsInCanvas(Canvas canvas) {
  6. Canvas c = canvas;
  7. if (canvas == null) return;
  8. AdditionalCanvasShaderChannels additionalShaderChannels = c.additionalShaderChannels;
  9. additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord1;
  10. additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord2;
  11. additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord3;
  12. additionalShaderChannels |= AdditionalCanvasShaderChannels.Normal;
  13. additionalShaderChannels |= AdditionalCanvasShaderChannels.Tangent;
  14. c.additionalShaderChannels = additionalShaderChannels;
  15. }
  16. internal static Vector2 Encode_0_1_16(Vector4 input) {
  17. float e = 255f / 256f;
  18. float m = 65535f;
  19. float ms = m * m;
  20. float n = m - 1;
  21. Vector4 value = input * e * n;
  22. float x = Mathf.Floor(value.x) / m + Mathf.Floor(value.y) / ms;
  23. float y = Mathf.Floor(value.z) / m + Mathf.Floor(value.w) / ms;
  24. return new Vector2(x, y);
  25. }
  26. private static Sprite _emptySprite;
  27. internal static Sprite EmptySprite {
  28. get {
  29. if (_emptySprite == null) {
  30. _emptySprite = Resources.Load<Sprite>("mpui_default_empty_sprite");
  31. }
  32. return _emptySprite;
  33. }
  34. }
  35. }
  36. }