Change Project License to MIT (#700)
* license change replace unneeded package * reword this
This commit is contained in:
parent
172e3850a5
commit
dd9a06ad52
|
@ -2,7 +2,6 @@ using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using Starpelly;
|
|
||||||
|
|
||||||
public class ColorPreview : MonoBehaviour
|
public class ColorPreview : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
@ -21,18 +20,18 @@ public class ColorPreview : MonoBehaviour
|
||||||
public void ChangeColor(Color c)
|
public void ChangeColor(Color c)
|
||||||
{
|
{
|
||||||
colorPicker.color = c;
|
colorPicker.color = c;
|
||||||
hex.text = c.Color2Hex();
|
hex.text = Color2Hex(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnColorChanged(Color c)
|
public void OnColorChanged(Color c)
|
||||||
{
|
{
|
||||||
previewGraphic.color = c;
|
previewGraphic.color = c;
|
||||||
hex.text = c.Color2Hex();
|
hex.text = Color2Hex(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetColorFromHex(string hex)
|
public void SetColorFromHex(string hex)
|
||||||
{
|
{
|
||||||
colorPicker.color = Starpelly.Colors.Hex2RGB(hex);
|
colorPicker.color = Hex2RGB(hex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
|
@ -45,4 +44,38 @@ public class ColorPreview : MonoBehaviour
|
||||||
{
|
{
|
||||||
SetColorFromHex(hex.text);
|
SetColorFromHex(hex.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static string Color2Hex(Color color)
|
||||||
|
{
|
||||||
|
Color32 col = (Color32)color;
|
||||||
|
string hex = col.r.ToString("X2") + col.g.ToString("X2") + col.b.ToString("X2");
|
||||||
|
return hex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts a Hexadecimal Color to an RGB Color.
|
||||||
|
/// </summary>
|
||||||
|
static Color Hex2RGB(string hex)
|
||||||
|
{
|
||||||
|
if (hex is null or "") return Color.black;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
hex = hex.Replace("0x", "");//in case the string is formatted 0xFFFFFF
|
||||||
|
hex = hex.Replace("#", "");//in case the string is formatted #FFFFFF
|
||||||
|
byte a = 255;//assume fully visible unless specified in hex
|
||||||
|
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
|
||||||
|
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
|
||||||
|
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
|
||||||
|
//Only use alpha if the string has enough characters
|
||||||
|
if (hex.Length >= 8)
|
||||||
|
{
|
||||||
|
a = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
|
||||||
|
}
|
||||||
|
return new Color32(r, g, b, a);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return Color.black;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: cb987a8733a64924aa4c1bcbe27e6430
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,115 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Starpelly
|
|
||||||
{
|
|
||||||
public class Anchors
|
|
||||||
{
|
|
||||||
//------------Top-------------------
|
|
||||||
public static void TopLeft(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0, 1);
|
|
||||||
uitransform.anchorMax = new Vector2(0, 1);
|
|
||||||
uitransform.pivot = new Vector2(0, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void TopMiddle(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0.5f, 1);
|
|
||||||
uitransform.anchorMax = new Vector2(0.5f, 1);
|
|
||||||
uitransform.pivot = new Vector2(0.5f, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void TopRight(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(1, 1);
|
|
||||||
uitransform.anchorMax = new Vector2(1, 1);
|
|
||||||
uitransform.pivot = new Vector2(1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------Middle-------------------
|
|
||||||
public static void MiddleLeft(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0, 0.5f);
|
|
||||||
uitransform.anchorMax = new Vector2(0, 0.5f);
|
|
||||||
uitransform.pivot = new Vector2(0, 0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Mmiddle(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0.5f, 0.5f);
|
|
||||||
uitransform.anchorMax = new Vector2(0.5f, 0.5f);
|
|
||||||
uitransform.pivot = new Vector2(0.5f, 0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void MiddleRight(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(1, 0.5f);
|
|
||||||
uitransform.anchorMax = new Vector2(1, 0.5f);
|
|
||||||
uitransform.pivot = new Vector2(1, 0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------Bottom-------------------
|
|
||||||
public static void BottomLeft(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0, 0);
|
|
||||||
uitransform.anchorMax = new Vector2(0, 0);
|
|
||||||
uitransform.pivot = new Vector2(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void BottomMiddle(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(0.5f, 0);
|
|
||||||
uitransform.anchorMax = new Vector2(0.5f, 0);
|
|
||||||
uitransform.pivot = new Vector2(0.5f, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void BottomRight(GameObject uiObject)
|
|
||||||
{
|
|
||||||
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
uitransform.anchorMin = new Vector2(1, 0);
|
|
||||||
uitransform.anchorMax = new Vector2(1, 0);
|
|
||||||
uitransform.pivot = new Vector2(1, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class RectTransformExtensions
|
|
||||||
{
|
|
||||||
public static void SetLeft(this RectTransform rt, float left)
|
|
||||||
{
|
|
||||||
rt.offsetMin = new Vector2(left, rt.offsetMin.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetRight(this RectTransform rt, float right)
|
|
||||||
{
|
|
||||||
rt.offsetMax = new Vector2(-right, rt.offsetMax.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetTop(this RectTransform rt, float top)
|
|
||||||
{
|
|
||||||
rt.offsetMax = new Vector2(rt.offsetMax.x, -top);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetBottom(this RectTransform rt, float bottom)
|
|
||||||
{
|
|
||||||
rt.offsetMin = new Vector2(rt.offsetMin.x, bottom);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 1d8c3539b2e2fb543b570b5d5e8cc79a
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,41 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Starpelly
|
|
||||||
{
|
|
||||||
public static class Colors
|
|
||||||
{
|
|
||||||
public static string Color2Hex(this Color color)
|
|
||||||
{
|
|
||||||
Color32 col = (Color32)color;
|
|
||||||
string hex = col.r.ToString("X2") + col.g.ToString("X2") + col.b.ToString("X2");
|
|
||||||
return hex;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Converts a Hexadecimal Color to an RGB Color.
|
|
||||||
/// </summary>
|
|
||||||
public static Color Hex2RGB(this string hex)
|
|
||||||
{
|
|
||||||
if (hex is null or "") return Color.black;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
hex = hex.Replace("0x", "");//in case the string is formatted 0xFFFFFF
|
|
||||||
hex = hex.Replace("#", "");//in case the string is formatted #FFFFFF
|
|
||||||
byte a = 255;//assume fully visible unless specified in hex
|
|
||||||
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
|
|
||||||
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
|
|
||||||
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
|
|
||||||
//Only use alpha if the string has enough characters
|
|
||||||
if (hex.Length >= 8)
|
|
||||||
{
|
|
||||||
a = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
|
|
||||||
}
|
|
||||||
return new Color32(r, g, b, a);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return Color.black;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 50a7b803bf8f71447b31651201c679bd
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,13 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using Starpelly.Enums.Windows;
|
|
||||||
|
|
||||||
namespace Starpelly.Common
|
|
||||||
{
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct POINT
|
|
||||||
{
|
|
||||||
public int x;
|
|
||||||
public int y;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 443faccde9dc53c488a2e5a987167620
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: af122b943aa4c9b42aff726e52d9ab65
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,34 +0,0 @@
|
||||||
namespace Starpelly.Enums.Strings
|
|
||||||
{
|
|
||||||
public enum StringType : int
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Both uppercase and lowercase letters in english.
|
|
||||||
/// </summary>
|
|
||||||
Alpha,
|
|
||||||
/// <summary>
|
|
||||||
/// All numbers ranging from 0-9
|
|
||||||
/// </summary>
|
|
||||||
Numeric,
|
|
||||||
/// <summary>
|
|
||||||
/// Both uppercase and lowercase letters with all numbers ranging from 0-9. (english)
|
|
||||||
/// </summary>
|
|
||||||
Alphanumeric,
|
|
||||||
/// <summary>
|
|
||||||
/// All uppercase letters in english.
|
|
||||||
/// </summary>
|
|
||||||
Uppercase,
|
|
||||||
/// <summary>
|
|
||||||
/// All lowercase letters in english.
|
|
||||||
/// </summary>
|
|
||||||
Lowercase,
|
|
||||||
/// <summary>
|
|
||||||
/// All punctuation marks on the QWERTY keyboard. (Also contains special keys)
|
|
||||||
/// </summary>
|
|
||||||
Punctuation,
|
|
||||||
/// <summary>
|
|
||||||
/// All of the above.
|
|
||||||
/// </summary>
|
|
||||||
ALL
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,108 +0,0 @@
|
||||||
using Starpelly.Common;
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace Starpelly.Enums.Windows
|
|
||||||
{
|
|
||||||
public enum WindowsCursor : int
|
|
||||||
{
|
|
||||||
StandardArrowAndSmallHourglass = 32650,
|
|
||||||
StandardArrow = 32512,
|
|
||||||
Crosshair = 32515,
|
|
||||||
Hand = 32649,
|
|
||||||
ArrowAndQuestionMark = 32651,
|
|
||||||
IBeam = 32513,
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete for applications marked version 4.0 or later.
|
|
||||||
/// </summary>
|
|
||||||
[System.Obsolete]
|
|
||||||
Icon = 32641,
|
|
||||||
SlashedCircle = 32648,
|
|
||||||
/// <summary>
|
|
||||||
/// Obsolete for applications marked version 4.0 or later. Use FourPointedArrowPointingNorthSouthEastAndWest
|
|
||||||
/// </summary>
|
|
||||||
[System.Obsolete]
|
|
||||||
Size = 32640,
|
|
||||||
FourPointedArrowPointingNorthSouthEastAndWest = 32646,
|
|
||||||
DoublePointedArrowPointingNortheastAndSouthwest = 32643,
|
|
||||||
DoublePointedArrowPointingNorthAndSouth = 32645,
|
|
||||||
DoublePointedArrowPointingNorthwestAndSoutheast = 32642,
|
|
||||||
DoublePointedArrowPointingWestAndEast = 32644,
|
|
||||||
VerticalArrow = 32516,
|
|
||||||
Hourglass = 32514
|
|
||||||
}
|
|
||||||
|
|
||||||
[Flags]
|
|
||||||
public enum SendInputEventType : uint
|
|
||||||
{
|
|
||||||
InputMouse,
|
|
||||||
InputKeyboard,
|
|
||||||
InputHardware
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct MOUSEINPUT
|
|
||||||
{
|
|
||||||
public int dx;
|
|
||||||
public int dy;
|
|
||||||
public uint mouseData;
|
|
||||||
public MouseEventFlags dwFlags;
|
|
||||||
public uint time;
|
|
||||||
public IntPtr dwExtraInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct KEYBOARDINPUT
|
|
||||||
{
|
|
||||||
public ushort wVk;
|
|
||||||
public ushort wScan;
|
|
||||||
public uint dwFlags;
|
|
||||||
public uint time;
|
|
||||||
public IntPtr dwExtraInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct HARDWAREINPUT
|
|
||||||
{
|
|
||||||
public int uMsg;
|
|
||||||
public short wParamL;
|
|
||||||
public short wParamH;
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Explicit)]
|
|
||||||
public struct MOUSEANDKEYBOARDINPUT
|
|
||||||
{
|
|
||||||
[FieldOffset(0)]
|
|
||||||
public MOUSEINPUT mi;
|
|
||||||
|
|
||||||
[FieldOffset(0)]
|
|
||||||
public KEYBOARDINPUT ki;
|
|
||||||
|
|
||||||
[FieldOffset(0)]
|
|
||||||
public HARDWAREINPUT hi;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Flags]
|
|
||||||
public enum MouseEventFlags : uint
|
|
||||||
{
|
|
||||||
MOUSEEVENT_MOVE = 0x0001,
|
|
||||||
MOUSEEVENT_LEFTDOWN = 0x0002,
|
|
||||||
MOUSEEVENT_LEFTUP = 0x0004,
|
|
||||||
MOUSEEVENT_RIGHTDOWN = 0x0008,
|
|
||||||
MOUSEEVENT_RIGHTUP = 0x0010,
|
|
||||||
MOUSEEVENT_MIDDLEDOWN = 0x0020,
|
|
||||||
MOUSEEVENT_MIDDLEUP = 0x0040,
|
|
||||||
MOUSEEVENT_XDOWN = 0x0080,
|
|
||||||
MOUSEEVENT_XUP = 0x0100,
|
|
||||||
MOUSEEVENT_WHEEL = 0x0800,
|
|
||||||
MOUSEEVENT_VIRTUALDESK = 0x4000,
|
|
||||||
MOUSEEVENT_ABSOLUTE = 0x8000
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct INPUT
|
|
||||||
{
|
|
||||||
public SendInputEventType type;
|
|
||||||
public MOUSEANDKEYBOARDINPUT mkhi;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9aa3c38600fe0124ea40791c379eb5d0
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,18 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Runtime.Serialization.Formatters.Binary;
|
|
||||||
|
|
||||||
public static class Extensions
|
|
||||||
{
|
|
||||||
public static T DeepClone<T>(this T obj)
|
|
||||||
{
|
|
||||||
using (MemoryStream stream = new MemoryStream())
|
|
||||||
{
|
|
||||||
BinaryFormatter formatter = new BinaryFormatter();
|
|
||||||
formatter.Serialize(stream, obj);
|
|
||||||
stream.Position = 0;
|
|
||||||
|
|
||||||
return (T)formatter.Deserialize(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 98be75cbdf7662d43bf84e7f1ac7d58e
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,93 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Starpelly
|
|
||||||
{
|
|
||||||
public static class Mathp
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Rounds float to nearest interval.
|
|
||||||
/// </summary>
|
|
||||||
public static float Round2Nearest(float a, float interval)
|
|
||||||
{
|
|
||||||
return a = a - (a % interval);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the difference between two floats.
|
|
||||||
/// </summary>
|
|
||||||
public static float Difference(float num1, float num2)
|
|
||||||
{
|
|
||||||
float cout;
|
|
||||||
cout = Mathf.Max(num2, num1) - Mathf.Min(num1, num2);
|
|
||||||
return cout;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns the closest value in a list compared to value given.
|
|
||||||
/// </summary>
|
|
||||||
public static float GetClosestInList(List<float> list, float compareTo)
|
|
||||||
{
|
|
||||||
if (list.Count > 0)
|
|
||||||
return list.Aggregate((x, y) => Mathf.Abs(x - compareTo) < Mathf.Abs(y - compareTo) ? x : y);
|
|
||||||
else
|
|
||||||
return -40;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get the numbers after a decimal.
|
|
||||||
/// </summary>
|
|
||||||
public static float GetDecimalFromFloat(float number)
|
|
||||||
{
|
|
||||||
return number % 1; // this is simple as fuck, but i'm dumb and forget this all the time
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Converts two numbers to a range of 0 - 1
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="val">The input value.</param>
|
|
||||||
/// <param name="min">The min input.</param>
|
|
||||||
/// <param name="max">The max input.</param>
|
|
||||||
public static float Normalize(float val, float min, float max)
|
|
||||||
{
|
|
||||||
return (val - min) / (max - min);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Converts a normalized value to a normal float.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="val">The normalized value.</param>
|
|
||||||
/// <param name="min">The min input.</param>
|
|
||||||
/// <param name="max">The max input.</param>
|
|
||||||
public static float DeNormalize(float val, float min, float max)
|
|
||||||
{
|
|
||||||
return (val * (max - min) + min);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if a value is within a certain range.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsWithin(this float val, float min, float max)
|
|
||||||
{
|
|
||||||
return val >= min && val <= max;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if a value is within a certain range.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsWithin(this Vector2 val, Vector2 min, Vector2 max)
|
|
||||||
{
|
|
||||||
return val.x.IsWithin(min.x, max.x) && val.y.IsWithin(min.y, max.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if value is between two numbers.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsBetween<T>(this T item, T start, T end)
|
|
||||||
{
|
|
||||||
return Comparer<T>.Default.Compare(item, start) >= 0
|
|
||||||
&& Comparer<T>.Default.Compare(item, end) <= 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 09ae937b4a8b92d4386ba5172d1ad67f
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,23 +0,0 @@
|
||||||
namespace Starpelly
|
|
||||||
{
|
|
||||||
public static class OS
|
|
||||||
{
|
|
||||||
private static readonly OperatingSystem.IOperatingSystem _os;
|
|
||||||
|
|
||||||
static OS()
|
|
||||||
{
|
|
||||||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
|
||||||
_os = new OperatingSystem.Windows();
|
|
||||||
#elif UNITY_STANDALONE_LINUX || UNITY_EDITOR_LINUX
|
|
||||||
_os = new OperatingSystem.Linux();
|
|
||||||
#elif UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
|
||||||
_os = new OperatingSystem.MacOS();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ChangeWindowTitle(string newTitle)
|
|
||||||
{
|
|
||||||
_os.ChangeWindowTitle(newTitle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 36edcede4a1a4ef9bb0902354c3be0d1
|
|
||||||
timeCreated: 1655775758
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 7b17a1aeeb0f43bb805dc7ac03408ebb
|
|
||||||
timeCreated: 1655775758
|
|
|
@ -1,7 +0,0 @@
|
||||||
namespace Starpelly.OperatingSystem
|
|
||||||
{
|
|
||||||
public interface IOperatingSystem
|
|
||||||
{
|
|
||||||
public void ChangeWindowTitle(string newTitle);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 8bb82376a44e4330b6398deddb17d282
|
|
||||||
timeCreated: 1655775758
|
|
|
@ -1,16 +0,0 @@
|
||||||
#if UNITY_EDITOR_LINUX || UNITY_STANDALONE_LINUX
|
|
||||||
using System.Diagnostics;
|
|
||||||
|
|
||||||
namespace Starpelly.OperatingSystem
|
|
||||||
{
|
|
||||||
public class Linux : IOperatingSystem
|
|
||||||
{
|
|
||||||
public void ChangeWindowTitle(string newTitle)
|
|
||||||
{
|
|
||||||
var pid = Process.GetCurrentProcess().Id;
|
|
||||||
var args = $"search --all --pid {pid} --class '.' set_window --name \"{newTitle}\"";
|
|
||||||
Process.Start("xdotool", args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9e5d25ae0c3e4256abae4d2e07f7e14b
|
|
||||||
timeCreated: 1655775758
|
|
|
@ -1,10 +0,0 @@
|
||||||
namespace Starpelly.OperatingSystem
|
|
||||||
{
|
|
||||||
public class MacOS : IOperatingSystem
|
|
||||||
{
|
|
||||||
public void ChangeWindowTitle(string newTitle)
|
|
||||||
{
|
|
||||||
throw new System.NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: cfc6152d5db74f568b229047970f7889
|
|
||||||
timeCreated: 1655775758
|
|
|
@ -1,58 +0,0 @@
|
||||||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
using Starpelly.Common;
|
|
||||||
using Starpelly.Enums.Windows;
|
|
||||||
|
|
||||||
namespace Starpelly.OperatingSystem
|
|
||||||
{
|
|
||||||
public class User32
|
|
||||||
{
|
|
||||||
#region Input
|
|
||||||
[DllImport("user32.dll", EntryPoint = "SetCursor")]
|
|
||||||
public static extern IntPtr SetCursor(IntPtr hCursor);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "LoadCursor")]
|
|
||||||
public static extern IntPtr LoadCursor(IntPtr hInstance, int lpCursorName);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern uint SendInput(uint numberOfInputs, INPUT[] inputs, int sizeOfInputStructure);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern long SetCursorPos(int x, int y);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
public static extern bool GetCursorPos(out POINT p);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetDesktopWindow();
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetWindowDC(IntPtr ptr);
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Window
|
|
||||||
[DllImport("user32.dll", EntryPoint = "SetWindowText")]
|
|
||||||
public static extern bool SetWindowText(IntPtr hwnd, String lpString);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "FindWindow")]
|
|
||||||
public static extern IntPtr FindWindow(String className, String windowName);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetForegroundWindow();
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: eaea5ea9d5c881b4cb40464086c3a1da
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,141 +0,0 @@
|
||||||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
using Starpelly.Enums.Windows;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Starpelly.OperatingSystem
|
|
||||||
{
|
|
||||||
public class Windows : IOperatingSystem
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the current title of the game window.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>The current title the window is, will probably only be used for changing the window in ChangeWindowTitle()</returns>
|
|
||||||
private static string GetActiveWindowTitle()
|
|
||||||
{
|
|
||||||
const int nChars = 256;
|
|
||||||
StringBuilder Buff = new StringBuilder(nChars);
|
|
||||||
IntPtr handle = User32.GetForegroundWindow();
|
|
||||||
|
|
||||||
if (User32.GetWindowText(handle, Buff, nChars) > 0)
|
|
||||||
{
|
|
||||||
return Buff.ToString();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Changes the game's window title.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="newTitle">The title the window will be changed to.</param>
|
|
||||||
public void ChangeWindowTitle(string newTitle)
|
|
||||||
{
|
|
||||||
var windowPtr = User32.FindWindow(null, GetActiveWindowTitle());
|
|
||||||
User32.SetWindowText(windowPtr, newTitle);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Input
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Simulates a real key press passed in.
|
|
||||||
/// </summary>
|
|
||||||
public static void KeyPress(KeyCodeWin keyCode)
|
|
||||||
{
|
|
||||||
INPUT input = new INPUT
|
|
||||||
{
|
|
||||||
type = SendInputEventType.InputKeyboard,
|
|
||||||
mkhi = new MOUSEANDKEYBOARDINPUT
|
|
||||||
{
|
|
||||||
ki = new KEYBOARDINPUT
|
|
||||||
{
|
|
||||||
wVk = (ushort)keyCode,
|
|
||||||
wScan = 0,
|
|
||||||
dwFlags = 0, // if nothing, key down
|
|
||||||
time = 0,
|
|
||||||
dwExtraInfo = IntPtr.Zero,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
INPUT input2 = new INPUT
|
|
||||||
{
|
|
||||||
type = SendInputEventType.InputKeyboard,
|
|
||||||
mkhi = new MOUSEANDKEYBOARDINPUT
|
|
||||||
{
|
|
||||||
ki = new KEYBOARDINPUT
|
|
||||||
{
|
|
||||||
wVk = (ushort)keyCode,
|
|
||||||
wScan = 0,
|
|
||||||
dwFlags = 2, // key up
|
|
||||||
time = 0,
|
|
||||||
dwExtraInfo = IntPtr.Zero,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
INPUT[] inputs = new INPUT[] { input, input2 }; // Combined, it's a keystroke
|
|
||||||
User32.SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(typeof(INPUT)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sets your mouse pointer.
|
|
||||||
/// </summary>
|
|
||||||
public static void ChangeCursor(WindowsCursor cursor)
|
|
||||||
{
|
|
||||||
User32.SetCursor(User32.LoadCursor(IntPtr.Zero, (int)cursor));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Immediately clicks the left mouse button.
|
|
||||||
/// </summary>
|
|
||||||
public static void ClickLeftMouseButton()
|
|
||||||
{
|
|
||||||
INPUT mouseDownInput = new INPUT();
|
|
||||||
mouseDownInput.type = SendInputEventType.InputMouse;
|
|
||||||
mouseDownInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENT_LEFTDOWN;
|
|
||||||
User32.SendInput(1, ref mouseDownInput, Marshal.SizeOf(new INPUT()));
|
|
||||||
|
|
||||||
INPUT mouseUpInput = new INPUT();
|
|
||||||
mouseUpInput.type = SendInputEventType.InputMouse;
|
|
||||||
mouseUpInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENT_LEFTUP;
|
|
||||||
User32.SendInput(1, ref mouseUpInput, Marshal.SizeOf(new INPUT()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Immediately clicks the right mouse button.
|
|
||||||
/// </summary>
|
|
||||||
public static void ClickRightMouseButton()
|
|
||||||
{
|
|
||||||
INPUT mouseDownInput = new INPUT();
|
|
||||||
mouseDownInput.type = SendInputEventType.InputMouse;
|
|
||||||
mouseDownInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENT_RIGHTDOWN;
|
|
||||||
User32.SendInput(1, ref mouseDownInput, Marshal.SizeOf(new INPUT()));
|
|
||||||
|
|
||||||
INPUT mouseUpInput = new INPUT();
|
|
||||||
mouseUpInput.type = SendInputEventType.InputMouse;
|
|
||||||
mouseUpInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENT_RIGHTUP;
|
|
||||||
User32.SendInput(1, ref mouseUpInput, Marshal.SizeOf(new INPUT()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Moves your cursor in the x and y params implemented, plus the current mouse pos.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="dx">Direction X</param>
|
|
||||||
/// <param name="dy">Direction Y</param>
|
|
||||||
public static void MouseMove(int dx, int dy)
|
|
||||||
{
|
|
||||||
INPUT mouseMove = new INPUT();
|
|
||||||
mouseMove.type = SendInputEventType.InputMouse;
|
|
||||||
mouseMove.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENT_MOVE;
|
|
||||||
mouseMove.mkhi.mi.dx = dx;
|
|
||||||
mouseMove.mkhi.mi.dy = dy;
|
|
||||||
User32.SendInput(1, ref mouseMove, Marshal.SizeOf(new INPUT()));
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ad72bc489623a464780ec0ff75fe7d70
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,167 +0,0 @@
|
||||||
namespace Pelly
|
|
||||||
{
|
|
||||||
public enum KeyCodeWin : ushort
|
|
||||||
{
|
|
||||||
#region Media
|
|
||||||
MEDIA_NEXT_TRACK = 0xb0,
|
|
||||||
MEDIA_PREV_TRACK = 0xb1,
|
|
||||||
MEDIA_STOP = 0xb2,
|
|
||||||
MEDIA_PLAY_PAUSE = 0xb3,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Math Functions
|
|
||||||
MULTIPLY = 0x6a, // '*'
|
|
||||||
ADD = 0x6b,
|
|
||||||
SUBTRACT = 0x6d,
|
|
||||||
DIVIDE = 0x6f,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Browser
|
|
||||||
BROWSER_BACK = 0xa6,
|
|
||||||
BROWSER_FORWARD = 0xa7,
|
|
||||||
BROWSER_REFRESH = 0xa8,
|
|
||||||
BROWSER_STOP = 0xa9,
|
|
||||||
BROWSER_SEARCH = 0xaa,
|
|
||||||
BROWSER_FAVORITES = 0xab,
|
|
||||||
BROWSER_HOME = 0xac,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Numpad numbers
|
|
||||||
NUMPAD0 = 0x60,
|
|
||||||
NUMPAD1 = 0x61,
|
|
||||||
NUMPAD2 = 0x62,
|
|
||||||
NUMPAD3 = 0x63,
|
|
||||||
NUMPAD4 = 0x64, // 100
|
|
||||||
NUMPAD5 = 0x65,
|
|
||||||
NUMPAD6 = 0x66,
|
|
||||||
NUMPAD7 = 0x67,
|
|
||||||
NUMPAD8 = 0x68,
|
|
||||||
NUMPAD9 = 0x69,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Function Keys
|
|
||||||
F1 = 0x70,
|
|
||||||
F2 = 0x71,
|
|
||||||
F3 = 0x72,
|
|
||||||
F4 = 0x73,
|
|
||||||
F5 = 0x74,
|
|
||||||
F6 = 0x75,
|
|
||||||
F7 = 0x76,
|
|
||||||
F8 = 0x77,
|
|
||||||
F9 = 0x78,
|
|
||||||
F10 = 0x79,
|
|
||||||
F11 = 0x7a,
|
|
||||||
F12 = 0x7b,
|
|
||||||
F13 = 0x7c,
|
|
||||||
F14 = 0x7d,
|
|
||||||
F15 = 0x7e,
|
|
||||||
F16 = 0x7f,
|
|
||||||
F17 = 0x80,
|
|
||||||
F18 = 0x81,
|
|
||||||
F19 = 130,
|
|
||||||
F20 = 0x83,
|
|
||||||
F21 = 0x84,
|
|
||||||
F22 = 0x85,
|
|
||||||
F23 = 0x86,
|
|
||||||
F24 = 0x87,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Other
|
|
||||||
// see https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html
|
|
||||||
OEM_COLON = 0xba, // OEM_1
|
|
||||||
OEM_102 = 0xe2,
|
|
||||||
OEM_2 = 0xbf,
|
|
||||||
OEM_3 = 0xc0,
|
|
||||||
OEM_4 = 0xdb,
|
|
||||||
OEM_BACK_SLASH = 0xdc, // OEM_5
|
|
||||||
OEM_6 = 0xdd,
|
|
||||||
OEM_7 = 0xde,
|
|
||||||
OEM_8 = 0xdf,
|
|
||||||
OEM_CLEAR = 0xfe,
|
|
||||||
OEM_COMMA = 0xbc,
|
|
||||||
OEM_MINUS = 0xbd, // Underscore
|
|
||||||
OEM_PERIOD = 0xbe,
|
|
||||||
OEM_PLUS = 0xbb,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region KEYS
|
|
||||||
KEY_0 = 0x30,
|
|
||||||
KEY_1 = 0x31,
|
|
||||||
KEY_2 = 0x32,
|
|
||||||
KEY_3 = 0x33,
|
|
||||||
KEY_4 = 0x34,
|
|
||||||
KEY_5 = 0x35,
|
|
||||||
KEY_6 = 0x36,
|
|
||||||
KEY_7 = 0x37,
|
|
||||||
KEY_8 = 0x38,
|
|
||||||
KEY_9 = 0x39,
|
|
||||||
KEY_A = 0x41,
|
|
||||||
KEY_B = 0x42,
|
|
||||||
KEY_C = 0x43,
|
|
||||||
KEY_D = 0x44,
|
|
||||||
KEY_E = 0x45,
|
|
||||||
KEY_F = 0x46,
|
|
||||||
KEY_G = 0x47,
|
|
||||||
KEY_H = 0x48,
|
|
||||||
KEY_I = 0x49,
|
|
||||||
KEY_J = 0x4a,
|
|
||||||
KEY_K = 0x4b,
|
|
||||||
KEY_L = 0x4c,
|
|
||||||
KEY_M = 0x4d,
|
|
||||||
KEY_N = 0x4e,
|
|
||||||
KEY_O = 0x4f,
|
|
||||||
KEY_P = 0x50,
|
|
||||||
KEY_Q = 0x51,
|
|
||||||
KEY_R = 0x52,
|
|
||||||
KEY_S = 0x53,
|
|
||||||
KEY_T = 0x54,
|
|
||||||
KEY_U = 0x55,
|
|
||||||
KEY_V = 0x56,
|
|
||||||
KEY_W = 0x57,
|
|
||||||
KEY_X = 0x58,
|
|
||||||
KEY_Y = 0x59,
|
|
||||||
KEY_Z = 0x5a,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region volume
|
|
||||||
VOLUME_MUTE = 0xad,
|
|
||||||
VOLUME_DOWN = 0xae,
|
|
||||||
VOLUME_UP = 0xaf,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
SNAPSHOT = 0x2c,
|
|
||||||
RIGHT_CLICK = 0x5d,
|
|
||||||
BACKSPACE = 8,
|
|
||||||
CANCEL = 3,
|
|
||||||
CAPS_LOCK = 20,
|
|
||||||
CONTROL = 0x11,
|
|
||||||
ALT = 18,
|
|
||||||
DECIMAL = 110,
|
|
||||||
DELETE = 0x2e,
|
|
||||||
DOWN = 40,
|
|
||||||
END = 0x23,
|
|
||||||
ESC = 0x1b,
|
|
||||||
HOME = 0x24,
|
|
||||||
INSERT = 0x2d,
|
|
||||||
LAUNCH_APP1 = 0xb6,
|
|
||||||
LAUNCH_APP2 = 0xb7,
|
|
||||||
LAUNCH_MAIL = 180,
|
|
||||||
LAUNCH_MEDIA_SELECT = 0xb5,
|
|
||||||
LCONTROL = 0xa2,
|
|
||||||
LEFT = 0x25,
|
|
||||||
LSHIFT = 0xa0,
|
|
||||||
LWIN = 0x5b,
|
|
||||||
PAGEDOWN = 0x22,
|
|
||||||
NUMLOCK = 0x90,
|
|
||||||
PAGE_UP = 0x21,
|
|
||||||
RCONTROL = 0xa3,
|
|
||||||
ENTER = 13,
|
|
||||||
RIGHT = 0x27,
|
|
||||||
RSHIFT = 0xa1,
|
|
||||||
RWIN = 0x5c,
|
|
||||||
SHIFT = 0x10,
|
|
||||||
SPACE_BAR = 0x20,
|
|
||||||
TAB = 9,
|
|
||||||
UP = 0x26,
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 270c0104ad1fee346ac2cd6cdc617329
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 20020e40c9650d34a938ffef9aa986cf
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,13 +0,0 @@
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Starpelly.Properties
|
|
||||||
{
|
|
||||||
public static class Arrays
|
|
||||||
{
|
|
||||||
public static void Push<T>(ref T[] table, object value)
|
|
||||||
{
|
|
||||||
Array.Resize(ref table, table.Length + 1);
|
|
||||||
table.SetValue(value, table.Length - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: f44e2d87a27b15847b56b14db8a25730
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,56 +0,0 @@
|
||||||
using Starpelly.Enums.Strings;
|
|
||||||
|
|
||||||
namespace Starpelly.Properties
|
|
||||||
{
|
|
||||||
public class Strings
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Chooses a string based on the StringType chosen.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="stringType">The string type eg. (uppercase, lowercase, numeric)</param>
|
|
||||||
/// <returns>A list of chars because enums don't support strings. :(</returns>
|
|
||||||
public static string Chars(StringType stringType)
|
|
||||||
{
|
|
||||||
const string alpha = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
||||||
const string numeric = @"0123456789";
|
|
||||||
const string alphanumeric = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
||||||
const string uppercase = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
||||||
const string lowercase = @"abcdefghijklmnopqrstuvwxyz";
|
|
||||||
const string punctuation = @"!@#$%^&*()_+{}:|<>?/.,;'\[]-=`~ ";
|
|
||||||
const string all = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+{}:|<>?/.,;'\[]-=`~ ";
|
|
||||||
|
|
||||||
string returnString;
|
|
||||||
|
|
||||||
// I wish C# had the ability to use strings with enums
|
|
||||||
switch (stringType)
|
|
||||||
{
|
|
||||||
case StringType.Alpha:
|
|
||||||
returnString = alpha;
|
|
||||||
break;
|
|
||||||
case StringType.Numeric:
|
|
||||||
returnString = numeric;
|
|
||||||
break;
|
|
||||||
case StringType.Alphanumeric:
|
|
||||||
returnString = alphanumeric;
|
|
||||||
break;
|
|
||||||
case StringType.Uppercase:
|
|
||||||
returnString = uppercase;
|
|
||||||
break;
|
|
||||||
case StringType.Lowercase:
|
|
||||||
returnString = lowercase;
|
|
||||||
break;
|
|
||||||
case StringType.Punctuation:
|
|
||||||
returnString = punctuation;
|
|
||||||
break;
|
|
||||||
case StringType.ALL:
|
|
||||||
returnString = all;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
returnString = all;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnString;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bbc057365bf984546b564868d853a53a
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Starpelly
|
|
||||||
Tools for Unity
|
|
||||||
|
|
||||||
Simulates the "A" key press every 0.6 seconds:
|
|
||||||
```cs
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
using Starpelly.OS;
|
|
||||||
|
|
||||||
public class test : MonoBehaviour
|
|
||||||
{
|
|
||||||
private float action = 0.0f;
|
|
||||||
private float period = 0.6f;
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
Application.runInBackground = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
if (Time.time > action)
|
|
||||||
{
|
|
||||||
action += period;
|
|
||||||
Windows.KeyPress(Starpelly.KeyCodeWin.KEY_A);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 420b909aa281dcb478854d7bbba95ebf
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,25 +0,0 @@
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
using Starpelly.Enums.Strings;
|
|
||||||
|
|
||||||
namespace Starpelly.Random
|
|
||||||
{
|
|
||||||
public class Strings
|
|
||||||
{
|
|
||||||
private static System.Random random = new System.Random();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Function used to get a random string using the StringType and length provided.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="stringType">The string type. e.g, (uppercase, lowercase, numeric)</param>
|
|
||||||
/// <param name="length">The length you want the string to be.</param>
|
|
||||||
/// <returns>A random string of characters in a random order.</returns>
|
|
||||||
public static string RandomString(StringType stringType, int length)
|
|
||||||
{
|
|
||||||
string chars = Properties.Strings.Chars(stringType);
|
|
||||||
|
|
||||||
return new string(Enumerable.Repeat(chars, length)
|
|
||||||
.Select(s => s[random.Next(s.Length)]).ToArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2c01318b4f5f869499a36b5d80319b47
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,62 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public static class RendererExtensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Counts the bounding box corners of the given RectTransform that are visible from the given Camera in screen space.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>The amount of bounding box corners that are visible from the Camera.</returns>
|
|
||||||
/// <param name="rectTransform">Rect transform.</param>
|
|
||||||
/// <param name="camera">Camera.</param>
|
|
||||||
private static int CountCornersVisibleFrom(this RectTransform rectTransform, Camera camera)
|
|
||||||
{
|
|
||||||
Rect screenBounds = new Rect(0f, 0f, Screen.width, Screen.height); // Screen space bounds (assumes camera renders across the entire screen)
|
|
||||||
Vector3[] objectCorners = new Vector3[4];
|
|
||||||
rectTransform.GetWorldCorners(objectCorners);
|
|
||||||
|
|
||||||
int visibleCorners = 0;
|
|
||||||
Vector3 tempScreenSpaceCorner; // Cached
|
|
||||||
for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
|
|
||||||
{
|
|
||||||
tempScreenSpaceCorner = camera.WorldToScreenPoint(objectCorners[i]); // Transform world space position of corner to screen space
|
|
||||||
if (screenBounds.Contains(tempScreenSpaceCorner)) // If the corner is inside the screen
|
|
||||||
{
|
|
||||||
visibleCorners++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return visibleCorners;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines if this RectTransform is fully visible from the specified camera.
|
|
||||||
/// Works by checking if each bounding box corner of this RectTransform is inside the cameras screen space view frustrum.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns><c>true</c> if is fully visible from the specified camera; otherwise, <c>false</c>.</returns>
|
|
||||||
/// <param name="rectTransform">Rect transform.</param>
|
|
||||||
/// <param name="camera">Camera.</param>
|
|
||||||
public static bool IsFullyVisibleFrom(this RectTransform rectTransform, Camera camera)
|
|
||||||
{
|
|
||||||
return CountCornersVisibleFrom(rectTransform, camera) == 4; // True if all 4 corners are visible
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines if this RectTransform is at least partially visible from the specified camera.
|
|
||||||
/// Works by checking if any bounding box corner of this RectTransform is inside the cameras screen space view frustrum.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns><c>true</c> if is at least partially visible from the specified camera; otherwise, <c>false</c>.</returns>
|
|
||||||
/// <param name="rectTransform">Rect transform.</param>
|
|
||||||
/// <param name="camera">Camera.</param>
|
|
||||||
public static bool IsVisibleFrom(this RectTransform rectTransform, Camera camera)
|
|
||||||
{
|
|
||||||
return CountCornersVisibleFrom(rectTransform, camera) > 0; // True if any corners are visible
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool MouseIsWithin(this RectTransform rectTransform)
|
|
||||||
{
|
|
||||||
var normalizedMousePosition = new Vector2(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height);
|
|
||||||
return normalizedMousePosition.x > rectTransform.anchorMin.x &&
|
|
||||||
normalizedMousePosition.x < rectTransform.anchorMax.x &&
|
|
||||||
normalizedMousePosition.y > rectTransform.anchorMin.y &&
|
|
||||||
normalizedMousePosition.y < rectTransform.anchorMax.y;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: e8273052806a5334cbf581670753ee77
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,111 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public static class ScreenUtility
|
|
||||||
{
|
|
||||||
public static Camera camera;
|
|
||||||
|
|
||||||
public static float Left
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (camera)
|
|
||||||
return camera.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).x;
|
|
||||||
|
|
||||||
if (Camera.main)
|
|
||||||
return Camera.main.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).x;
|
|
||||||
|
|
||||||
return 0.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float Right
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (camera)
|
|
||||||
return camera.ViewportToWorldPoint(new Vector3(1.0f, 0f, 0f)).x;
|
|
||||||
|
|
||||||
if (Camera.main)
|
|
||||||
return Camera.main.ViewportToWorldPoint(new Vector3(1.0f, 0f, 0f)).x;
|
|
||||||
|
|
||||||
return 0.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float Top
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (camera)
|
|
||||||
return camera.ViewportToWorldPoint(new Vector3(0f, 1.0f, 0f)).y;
|
|
||||||
|
|
||||||
if (Camera.main)
|
|
||||||
return Camera.main.ViewportToWorldPoint(new Vector3(0f, 1.0f, 0f)).y;
|
|
||||||
|
|
||||||
return 0.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float Bottom
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (camera)
|
|
||||||
return camera.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).y;
|
|
||||||
|
|
||||||
if (Camera.main)
|
|
||||||
return Camera.main.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).y;
|
|
||||||
|
|
||||||
return 0.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Vector3 Center
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (camera)
|
|
||||||
return camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0f));
|
|
||||||
|
|
||||||
if (Camera.main)
|
|
||||||
return Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0f));
|
|
||||||
|
|
||||||
return Vector3.zero;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool ScreenContainsPoint(Vector3 worldPosition)
|
|
||||||
{
|
|
||||||
return Camera.main.rect.Contains(Camera.main.WorldToViewportPoint(worldPosition));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ConstrainCamera(Camera camera, Bounds bounds)
|
|
||||||
{
|
|
||||||
float left = camera.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).x;
|
|
||||||
float right = camera.ViewportToWorldPoint(new Vector3(1.0f, 0f, 0f)).x;
|
|
||||||
float top = camera.ViewportToWorldPoint(new Vector3(0f, 1.0f, 0f)).y;
|
|
||||||
float bottom = camera.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)).y;
|
|
||||||
|
|
||||||
if (top > bounds.max.y)
|
|
||||||
{
|
|
||||||
float topDiff = bounds.max.y - top;
|
|
||||||
camera.transform.position += new Vector3(0, topDiff, 0);
|
|
||||||
}
|
|
||||||
else if (bottom < bounds.min.y)
|
|
||||||
{
|
|
||||||
float botDiff = bounds.min.y - bottom;
|
|
||||||
camera.transform.position += new Vector3(0, botDiff, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (right > bounds.max.x)
|
|
||||||
{
|
|
||||||
float rightDiff = bounds.max.x - right;
|
|
||||||
camera.transform.position += new Vector3(rightDiff, 0, 0);
|
|
||||||
}
|
|
||||||
else if (left < bounds.min.x)
|
|
||||||
{
|
|
||||||
float leftDiff = bounds.min.x - left;
|
|
||||||
camera.transform.position += new Vector3(leftDiff, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 8ef77a2b31ced114793835fcc91d9e34
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: f189f8c5d2787e84694d7f3a2be16a20
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0ad209f05754ddf4a96bf4e0e02b9228
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Add"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Add(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0ae724cf80d801b43b140517e4bbb12f
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: edc6b21aef727c14bb42932e92c7be29
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,233 +0,0 @@
|
||||||
#ifndef PHOTOSHOP_BLENDMODES_INCLUDED
|
|
||||||
#define PHOTOSHOP_BLENDMODES_INCLUDED
|
|
||||||
|
|
||||||
//
|
|
||||||
// Ported from https://www.shadertoy.com/view/XdS3RW
|
|
||||||
//
|
|
||||||
// Original License:
|
|
||||||
//
|
|
||||||
// Creative Commons CC0 1.0 Universal (CC-0)
|
|
||||||
//
|
|
||||||
// 25 of the layer blending modes from Photoshop.
|
|
||||||
//
|
|
||||||
// The ones I couldn't figure out are from Nvidia's advanced blend equations extension spec -
|
|
||||||
// http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt
|
|
||||||
//
|
|
||||||
// ~bj.2013
|
|
||||||
//
|
|
||||||
|
|
||||||
// Helpers
|
|
||||||
|
|
||||||
const fixed3 l = fixed3(0.3, 0.59, 0.11);
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
float pinLight(float s, float d)
|
|
||||||
{
|
|
||||||
return (2.0*s - 1.0 > d) ? 2.0*s - 1.0 : (s < 0.5 * d) ? 2.0*s : d;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
float vividLight(float s, float d)
|
|
||||||
{
|
|
||||||
return (s < 0.5) ? 1.0 - (1.0 - d) / (2.0 * s) : d / (2.0 * (1.0 - s));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
float hardLight(float s, float d)
|
|
||||||
{
|
|
||||||
return (s < 0.5) ? 2.0*s*d : 1.0 - 2.0*(1.0 - s)*(1.0 - d);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
float softLight(float s, float d)
|
|
||||||
{
|
|
||||||
return (s < 0.5) ? d - (1.0 - 2.0*s)*d*(1.0 - d)
|
|
||||||
: (d < 0.25) ? d + (2.0*s - 1.0)*d*((16.0*d - 12.0)*d + 3.0)
|
|
||||||
: d + (2.0*s - 1.0) * (sqrt(d) - d);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
float overlay( float s, float d )
|
|
||||||
{
|
|
||||||
return (d < 0.5) ? 2.0*s*d : 1.0 - 2.0*(1.0 - s)*(1.0 - d);
|
|
||||||
}
|
|
||||||
|
|
||||||
// rgb<-->hsv functions by Sam Hocevar
|
|
||||||
// http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl
|
|
||||||
/** @private */
|
|
||||||
fixed3 rgb2hsv(fixed3 c)
|
|
||||||
{
|
|
||||||
fixed4 K = fixed4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
fixed4 p = lerp(fixed4(c.bg, K.wz), fixed4(c.gb, K.xy), step(c.b, c.g));
|
|
||||||
fixed4 q = lerp(fixed4(p.xyw, c.r), fixed4(c.r, p.yzx), step(p.x, c.r));
|
|
||||||
|
|
||||||
float d = q.x - min(q.w, q.y);
|
|
||||||
float e = 1.0e-10;
|
|
||||||
return fixed3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @private */
|
|
||||||
fixed3 hsv2rgb(fixed3 c)
|
|
||||||
{
|
|
||||||
fixed4 K = fixed4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
fixed3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
return c.z * lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public API Blend Modes
|
|
||||||
|
|
||||||
fixed3 ColorBurn(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return 1.0 - (1.0 - d) / s;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 LinearBurn(fixed3 s, fixed3 d )
|
|
||||||
{
|
|
||||||
return s + d - 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 DarkerColor(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return (s.x + s.y + s.z < d.x + d.y + d.z) ? s : d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Lighten(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return max(s, d);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Screen(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s + d - s * d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 ColorDodge(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return d / (1.0 - s);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 LinearDodge(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s + d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 LighterColor(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return (s.x + s.y + s.z > d.x + d.y + d.z) ? s : d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Overlay(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
fixed3 c;
|
|
||||||
c.x = overlay(s.x, d.x);
|
|
||||||
c.y = overlay(s.y, d.y);
|
|
||||||
c.z = overlay(s.z, d.z);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 SoftLight(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
fixed3 c;
|
|
||||||
c.x = softLight(s.x, d.x);
|
|
||||||
c.y = softLight(s.y, d.y);
|
|
||||||
c.z = softLight(s.z, d.z);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 HardLight(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
fixed3 c;
|
|
||||||
c.x = hardLight(s.x, d.x);
|
|
||||||
c.y = hardLight(s.y, d.y);
|
|
||||||
c.z = hardLight(s.z, d.z);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 VividLight(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
fixed3 c;
|
|
||||||
c.x = vividLight(s.x, d.x);
|
|
||||||
c.y = vividLight(s.y, d.y);
|
|
||||||
c.z = vividLight(s.z, d.z);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 LinearLight(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return 2.0*s + d - 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 PinLight(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
fixed3 c;
|
|
||||||
c.x = pinLight(s.x, d.x);
|
|
||||||
c.y = pinLight(s.y, d.y);
|
|
||||||
c.z = pinLight(s.z, d.z);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 HardMix(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return floor(s+d);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Difference(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return abs(d-s);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Exclusion(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s + d - 2.0*s*d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Subtract(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s-d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Divide(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s/d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Add(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
return s+d;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Hue(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
d = rgb2hsv(d);
|
|
||||||
d.x = rgb2hsv(s).x;
|
|
||||||
return hsv2rgb(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Color(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
s = rgb2hsv(s);
|
|
||||||
s.z = rgb2hsv(d).z;
|
|
||||||
return hsv2rgb(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Saturation(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
d = rgb2hsv(d);
|
|
||||||
d.y = rgb2hsv(s).y;
|
|
||||||
return hsv2rgb(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed3 Luminosity(fixed3 s, fixed3 d)
|
|
||||||
{
|
|
||||||
float dLum = dot(d, l);
|
|
||||||
float sLum = dot(s, l);
|
|
||||||
float lum = sLum - dLum;
|
|
||||||
fixed3 c = d + lum;
|
|
||||||
float minC = min(min(c.x, c.y), c.z);
|
|
||||||
float maxC = max(max(c.x, c.y), c.z);
|
|
||||||
if(minC < 0.0) return sLum + ((c - sLum) * sLum) / (sLum - minC);
|
|
||||||
else if(maxC > 1.0) return sLum + ((c - sLum) * (1.0 - sLum)) / (maxC - sLum);
|
|
||||||
else return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // PHOTOSHOP_BLENDMODES_INCLUDED
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: eb4ec4a0e81584343b972b2a25f96bc2
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Color"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Color(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bb85841f8c67d2442b800ab4be4ecae5
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/ColorBurn"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = ColorBurn(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: da5b85daa127ed043af5579d10e6e49d
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/ColorDodge"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = ColorDodge(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: a1c1848ac45b3724483467a3f2f10326
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/DarkerColor"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = DarkerColor(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: d0090e6d378db134baa8c6bf62a4a607
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Difference"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Difference(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 74ccff3d254d9644fa54c55127b3646d
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Divide"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Divide(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 075fe556031b1174e8d6ca9369753b6d
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Exclusion"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Exclusion(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: d292d32bbf4832745a23aa6a3a06b1de
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/HardLight"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = HardLight(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: fe63576204204b1428a23c825667e2a9
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/HardMix"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = HardMix(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 4dc9a51c26a36e044904b7e3a5a87c51
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Hue"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Hue(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ac709b7b6ba995046b2e357657ce6e8a
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Lighten"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Lighten(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: af52445a55f450d488ad19f3f0f7b2c6
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/LighterColor"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = LighterColor(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 8c3ff3424a6646142b77fd44709ac344
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/LinearBurn"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = LinearBurn(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0cce16f4622c09c47918eeaa45e90221
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/LinearDodge"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = LinearDodge(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 57c2408124f76304286601e694c90cd9
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/LinearLight"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = LinearLight(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: b2d75a74e3683154db45a2a4191be880
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Luminosity"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Luminosity(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: fce1c8cc491cb9949990727c4b160df1
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Overlay"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Overlay(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2ffc151e4b55f1e468e1a7fd115dc8f8
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/PinLight"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = PinLight(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: f78ab9a11343ac647b0fd6e24af945df
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Saturation"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Saturation(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9da612291cb24ba4f8ed18d8ad9ab609
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Screen"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Screen(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 2b7011eeda59694449ddcd78ad15ba20
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/SoftLight"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = SoftLight(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9c5c0203c153de344acd602adb1210bb
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/Subtract"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = Subtract(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: dad2fab4a5cb39846a52481a503e6d11
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,106 +0,0 @@
|
||||||
Shader "Blendmodes/VividLight"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
[Header(Properties)]
|
|
||||||
_MainTex ("Blend Texture", 2D) = "white" {}
|
|
||||||
_Tint1 ("Tint on Texture", Color) = (1,1,1,0)
|
|
||||||
_Tint2 ("Tint on Blended Result", Color) = (1,1,1,0)
|
|
||||||
_Alpha ("Opacity of Blended Result", Range(0.0, 1.0)) = 1.0
|
|
||||||
|
|
||||||
//blending
|
|
||||||
|
|
||||||
[Header(Blending)]
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 5
|
|
||||||
[Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 10
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
[Header(Stencil)]
|
|
||||||
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
|
||||||
_Stencil ("Stencil ID", Float) = 0
|
|
||||||
[Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
|
||||||
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
||||||
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
||||||
[Enum(None,0,Alpha,1,Red,8,Green,4,Blue,2,RGB,14,RGBA,15)] _ColorMask("Color Mask", Int) = 15
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
|
|
||||||
LOD 100
|
|
||||||
Blend [_BlendSrc] [_BlendDst]
|
|
||||||
|
|
||||||
// required for UI.Mask
|
|
||||||
Stencil
|
|
||||||
{
|
|
||||||
Ref [_Stencil]
|
|
||||||
Comp [_StencilComp]
|
|
||||||
Pass [_StencilOp]
|
|
||||||
ReadMask [_StencilReadMask]
|
|
||||||
WriteMask [_StencilWriteMask]
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabPass
|
|
||||||
{
|
|
||||||
"_BackgroundTexture"
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CGIncludes/PhotoshopBlendModes.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 bguv : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
fixed4 _MainTex_ST;
|
|
||||||
fixed4 _Tint1;
|
|
||||||
fixed4 _Tint2;
|
|
||||||
fixed _Alpha;
|
|
||||||
|
|
||||||
sampler2D _BackgroundTexture;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
o.color = v.color;
|
|
||||||
o.bguv = ComputeGrabScreenPos(o.vertex);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
fixed4 mainColor = tex2D(_BackgroundTexture, i.bguv);
|
|
||||||
fixed4 blendColor = tex2D(_MainTex, i.uv) * i.color;
|
|
||||||
blendColor.xyz += _Tint1.xyz * _Tint1.a;
|
|
||||||
|
|
||||||
|
|
||||||
// perform blend
|
|
||||||
mainColor.xyz = VividLight(mainColor.xyz, blendColor.xyz);
|
|
||||||
mainColor.xyz += _Tint2.xyz * _Tint2.a;
|
|
||||||
mainColor.a = blendColor.a * _Alpha;
|
|
||||||
|
|
||||||
return mainColor;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bef33988c68cc854780ec0424181377e
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,167 +0,0 @@
|
||||||
namespace Starpelly
|
|
||||||
{
|
|
||||||
public enum KeyCodeWin : ushort
|
|
||||||
{
|
|
||||||
#region Media
|
|
||||||
MEDIA_NEXT_TRACK = 0xb0,
|
|
||||||
MEDIA_PREV_TRACK = 0xb1,
|
|
||||||
MEDIA_STOP = 0xb2,
|
|
||||||
MEDIA_PLAY_PAUSE = 0xb3,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Math Functions
|
|
||||||
MULTIPLY = 0x6a, // '*'
|
|
||||||
ADD = 0x6b,
|
|
||||||
SUBTRACT = 0x6d,
|
|
||||||
DIVIDE = 0x6f,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Browser
|
|
||||||
BROWSER_BACK = 0xa6,
|
|
||||||
BROWSER_FORWARD = 0xa7,
|
|
||||||
BROWSER_REFRESH = 0xa8,
|
|
||||||
BROWSER_STOP = 0xa9,
|
|
||||||
BROWSER_SEARCH = 0xaa,
|
|
||||||
BROWSER_FAVORITES = 0xab,
|
|
||||||
BROWSER_HOME = 0xac,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Numpad numbers
|
|
||||||
NUMPAD0 = 0x60,
|
|
||||||
NUMPAD1 = 0x61,
|
|
||||||
NUMPAD2 = 0x62,
|
|
||||||
NUMPAD3 = 0x63,
|
|
||||||
NUMPAD4 = 0x64, // 100
|
|
||||||
NUMPAD5 = 0x65,
|
|
||||||
NUMPAD6 = 0x66,
|
|
||||||
NUMPAD7 = 0x67,
|
|
||||||
NUMPAD8 = 0x68,
|
|
||||||
NUMPAD9 = 0x69,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Function Keys
|
|
||||||
F1 = 0x70,
|
|
||||||
F2 = 0x71,
|
|
||||||
F3 = 0x72,
|
|
||||||
F4 = 0x73,
|
|
||||||
F5 = 0x74,
|
|
||||||
F6 = 0x75,
|
|
||||||
F7 = 0x76,
|
|
||||||
F8 = 0x77,
|
|
||||||
F9 = 0x78,
|
|
||||||
F10 = 0x79,
|
|
||||||
F11 = 0x7a,
|
|
||||||
F12 = 0x7b,
|
|
||||||
F13 = 0x7c,
|
|
||||||
F14 = 0x7d,
|
|
||||||
F15 = 0x7e,
|
|
||||||
F16 = 0x7f,
|
|
||||||
F17 = 0x80,
|
|
||||||
F18 = 0x81,
|
|
||||||
F19 = 130,
|
|
||||||
F20 = 0x83,
|
|
||||||
F21 = 0x84,
|
|
||||||
F22 = 0x85,
|
|
||||||
F23 = 0x86,
|
|
||||||
F24 = 0x87,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Other
|
|
||||||
// see https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html
|
|
||||||
OEM_COLON = 0xba, // OEM_1
|
|
||||||
OEM_102 = 0xe2,
|
|
||||||
OEM_2 = 0xbf,
|
|
||||||
OEM_3 = 0xc0,
|
|
||||||
OEM_4 = 0xdb,
|
|
||||||
OEM_BACK_SLASH = 0xdc, // OEM_5
|
|
||||||
OEM_6 = 0xdd,
|
|
||||||
OEM_7 = 0xde,
|
|
||||||
OEM_8 = 0xdf,
|
|
||||||
OEM_CLEAR = 0xfe,
|
|
||||||
OEM_COMMA = 0xbc,
|
|
||||||
OEM_MINUS = 0xbd, // Underscore
|
|
||||||
OEM_PERIOD = 0xbe,
|
|
||||||
OEM_PLUS = 0xbb,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region KEYS
|
|
||||||
KEY_0 = 0x30,
|
|
||||||
KEY_1 = 0x31,
|
|
||||||
KEY_2 = 0x32,
|
|
||||||
KEY_3 = 0x33,
|
|
||||||
KEY_4 = 0x34,
|
|
||||||
KEY_5 = 0x35,
|
|
||||||
KEY_6 = 0x36,
|
|
||||||
KEY_7 = 0x37,
|
|
||||||
KEY_8 = 0x38,
|
|
||||||
KEY_9 = 0x39,
|
|
||||||
KEY_A = 0x41,
|
|
||||||
KEY_B = 0x42,
|
|
||||||
KEY_C = 0x43,
|
|
||||||
KEY_D = 0x44,
|
|
||||||
KEY_E = 0x45,
|
|
||||||
KEY_F = 0x46,
|
|
||||||
KEY_G = 0x47,
|
|
||||||
KEY_H = 0x48,
|
|
||||||
KEY_I = 0x49,
|
|
||||||
KEY_J = 0x4a,
|
|
||||||
KEY_K = 0x4b,
|
|
||||||
KEY_L = 0x4c,
|
|
||||||
KEY_M = 0x4d,
|
|
||||||
KEY_N = 0x4e,
|
|
||||||
KEY_O = 0x4f,
|
|
||||||
KEY_P = 0x50,
|
|
||||||
KEY_Q = 0x51,
|
|
||||||
KEY_R = 0x52,
|
|
||||||
KEY_S = 0x53,
|
|
||||||
KEY_T = 0x54,
|
|
||||||
KEY_U = 0x55,
|
|
||||||
KEY_V = 0x56,
|
|
||||||
KEY_W = 0x57,
|
|
||||||
KEY_X = 0x58,
|
|
||||||
KEY_Y = 0x59,
|
|
||||||
KEY_Z = 0x5a,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region volume
|
|
||||||
VOLUME_MUTE = 0xad,
|
|
||||||
VOLUME_DOWN = 0xae,
|
|
||||||
VOLUME_UP = 0xaf,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
SNAPSHOT = 0x2c,
|
|
||||||
RIGHT_CLICK = 0x5d,
|
|
||||||
BACKSPACE = 8,
|
|
||||||
CANCEL = 3,
|
|
||||||
CAPS_LOCK = 20,
|
|
||||||
CONTROL = 0x11,
|
|
||||||
ALT = 18,
|
|
||||||
DECIMAL = 110,
|
|
||||||
DELETE = 0x2e,
|
|
||||||
DOWN = 40,
|
|
||||||
END = 0x23,
|
|
||||||
ESC = 0x1b,
|
|
||||||
HOME = 0x24,
|
|
||||||
INSERT = 0x2d,
|
|
||||||
LAUNCH_APP1 = 0xb6,
|
|
||||||
LAUNCH_APP2 = 0xb7,
|
|
||||||
LAUNCH_MAIL = 180,
|
|
||||||
LAUNCH_MEDIA_SELECT = 0xb5,
|
|
||||||
LCONTROL = 0xa2,
|
|
||||||
LEFT = 0x25,
|
|
||||||
LSHIFT = 0xa0,
|
|
||||||
LWIN = 0x5b,
|
|
||||||
PAGEDOWN = 0x22,
|
|
||||||
NUMLOCK = 0x90,
|
|
||||||
PAGE_UP = 0x21,
|
|
||||||
RCONTROL = 0xa3,
|
|
||||||
ENTER = 13,
|
|
||||||
RIGHT = 0x27,
|
|
||||||
RSHIFT = 0xa1,
|
|
||||||
RWIN = 0x5c,
|
|
||||||
SHIFT = 0x10,
|
|
||||||
SPACE_BAR = 0x20,
|
|
||||||
TAB = 9,
|
|
||||||
UP = 0x26,
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 064d99289dbc58041b5102296a64ab2d
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,21 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Starpelly.Textures
|
|
||||||
{
|
|
||||||
public static class Draw
|
|
||||||
{
|
|
||||||
public static void DrawLine(this Texture2D tex, Vector2 p1, Vector2 p2, Color col)
|
|
||||||
{
|
|
||||||
Vector2 t = p1;
|
|
||||||
float frac = 1 / Mathf.Sqrt(Mathf.Pow(p2.x - p1.x, 2) + Mathf.Pow(p2.y - p1.y, 2));
|
|
||||||
float ctr = 0;
|
|
||||||
|
|
||||||
while ((int)t.x != (int)p2.x || (int)t.y != (int)p2.y)
|
|
||||||
{
|
|
||||||
t = Vector2.Lerp(p1, p2, ctr);
|
|
||||||
ctr += frac;
|
|
||||||
tex.SetPixel((int)t.x, (int)t.y, col);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue