40 lines
1.6 KiB
HLSL
40 lines
1.6 KiB
HLSL
// 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
|