| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef SPINE_COMMON_INCLUDED
- #define SPINE_COMMON_INCLUDED
- #if defined(USE_LWRP)
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #define GammaToLinearSpace SRGBToLinear
- #define LinearToGammaSpace LinearToSRGB
- #elif defined(USE_URP)
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #define GammaToLinearSpace SRGBToLinear
- #define LinearToGammaSpace LinearToSRGB
- #else
- #include "UnityCG.cginc"
- #endif
- inline half3 GammaToTargetSpace(half3 gammaColor) {
- #if UNITY_COLORSPACE_GAMMA
- return gammaColor;
- #else
- return GammaToLinearSpace(gammaColor);
- #endif
- }
- inline half3 TargetToGammaSpace(half3 targetColor) {
- #if UNITY_COLORSPACE_GAMMA
- return targetColor;
- #else
- return LinearToGammaSpace(targetColor);
- #endif
- }
- inline half4 PMAGammaToTargetSpace(half4 gammaPMAColor) {
- #if UNITY_COLORSPACE_GAMMA
- return gammaPMAColor;
- #else
- return gammaPMAColor.a == 0 ?
- half4(GammaToLinearSpace(gammaPMAColor.rgb), gammaPMAColor.a) :
- half4(GammaToLinearSpace(gammaPMAColor.rgb / gammaPMAColor.a) * gammaPMAColor.a, gammaPMAColor.a);
- #endif
- }
- // Saturated version to prevent numerical issues that occur at CanvasRenderer
- // shader during linear-space PMA vertex color correction (countering automatic Unity conversion).
- // Note: Only use this method when the original color.rgb values lie within [0,1] range and
- // it's not an HDR color. This method is usually suitable for vertex color.
- inline half4 PMAGammaToTargetSpaceSaturated(half4 gammaPMAColor) {
- #if UNITY_COLORSPACE_GAMMA
- return gammaPMAColor;
- #else
- return gammaPMAColor.a == 0 ?
- half4(GammaToLinearSpace(gammaPMAColor.rgb), gammaPMAColor.a) :
- half4(saturate(GammaToLinearSpace(gammaPMAColor.rgb / gammaPMAColor.a)) * gammaPMAColor.a, gammaPMAColor.a);
- #endif
- }
- #endif
|