8 public static class ReverseUV
12 private const string REVERSE_UV_MATERIAL =
"Es.InkPainter.Effective.ReverseUV";
13 private const string REVERSE_X =
"_ReverseX";
14 private const string REVERSE_Y =
"_ReverseY";
16 private const float DEFAULT = 1f;
17 private const float REVERSE = 0f;
19 private static Material reverseUVMaterial;
21 #endregion PrivateField
30 public static void Horizontal(Texture src, RenderTexture dst)
32 if (reverseUVMaterial ==
null)
33 InitReverseUVMaterial();
34 SetReverseUVProperty(REVERSE, DEFAULT);
43 public static void Vertical(Texture src, RenderTexture dst)
45 if (reverseUVMaterial ==
null)
46 InitReverseUVMaterial();
47 SetReverseUVProperty(DEFAULT, REVERSE);
56 public static void HorizontalAndVertical(Texture src, RenderTexture dst)
58 if (reverseUVMaterial ==
null)
59 InitReverseUVMaterial();
60 SetReverseUVProperty(REVERSE, REVERSE);
64 #endregion PublicMethod
71 private static void InitReverseUVMaterial()
73 reverseUVMaterial =
new Material(Resources.Load<Material>(REVERSE_UV_MATERIAL));
76 private static void SetReverseUVProperty(
float x,
float y)
78 reverseUVMaterial.SetFloat(REVERSE_X, x);
79 reverseUVMaterial.SetFloat(REVERSE_Y, y);
82 private static void Blit(Texture src, RenderTexture dst)
84 var tmp = RenderTexture.GetTemporary(src.width, src.height, 0);
85 Graphics.Blit(src, tmp, reverseUVMaterial);
87 RenderTexture.ReleaseTemporary(tmp);
90 #endregion PrivateField