Car/Assets/VolumetricLightBeam/Shaders/ShaderPropertySystem.cginc

40 lines
1.6 KiB
Plaintext
Raw Normal View History

// UNITY_SHADER_NO_UPGRADE
#ifndef _VLB_SHADER_PROPERTY_SYSTEM_INCLUDED_
#define _VLB_SHADER_PROPERTY_SYSTEM_INCLUDED_
/// ****************************************
/// PROPERTIES MACROS
/// ****************************************
#if VLB_INSTANCING_API_AVAILABLE && VLB_GPU_INSTANCING
#if UNITY_VERSION < 201730 // https://unity3d.com/fr/unity/beta/unity2017.3.0b1
// PRE UNITY 2017.3
// for some reason, letting the default UNITY_MAX_INSTANCE_COUNT value generates the following error:
// "Internal error communicating with the shader compiler process"
#define UNITY_MAX_INSTANCE_COUNT 150
#define VLB_DEFINE_PROP_START UNITY_INSTANCING_CBUFFER_START(Props)
#define VLB_DEFINE_PROP_END UNITY_INSTANCING_CBUFFER_END
#define VLB_GET_PROP(name) UNITY_ACCESS_INSTANCED_PROP(name)
#else
// POST UNITY 2017.3
#define VLB_DEFINE_PROP_START UNITY_INSTANCING_BUFFER_START(Props)
#define VLB_DEFINE_PROP_END UNITY_INSTANCING_BUFFER_END(Props)
#define VLB_GET_PROP(name) UNITY_ACCESS_INSTANCED_PROP(Props, name)
#endif
#define VLB_DEFINE_PROP(type, name) UNITY_DEFINE_INSTANCED_PROP(type, name)
#elif VLB_SRP_API && VLB_SRP_BATCHER
#define VLB_DEFINE_PROP_START CBUFFER_START(UnityPerMaterial)
#define VLB_DEFINE_PROP_END CBUFFER_END
#define VLB_DEFINE_PROP(type, name) type name;
#define VLB_GET_PROP(name) name
#else
#define VLB_DEFINE_PROP_START
#define VLB_DEFINE_PROP_END
#define VLB_DEFINE_PROP(type, name) uniform type name;
#define VLB_GET_PROP(name) name
#endif
/// ****************************************
#endif