@@ -3,30 +3,58 @@ module Staple;
33__include StapleMath;
44__include StapleLighting;
55
6- #define STAPLE_SKINNING_STAGE_INDEX 2
6+ #ifdef STAPLE_TEXTURE_COUNT
7+ public static const int StapleTextureCount = STAPLE_TEXTURE_COUNT;
8+ #else
9+ public static const int StapleTextureCount = 0 ;
10+ #endif
711
8- #ifdef SKINNING
9- public static const int StapleBufferIndexCount = 3 ;
12+ #ifdef STAPLE_STORAGE_TEXTURE_COUNT
13+ public static const int StapleStorageTextureStart = StapleTextureCount;
14+ public static const int StapleStorageTextureCount = StapleStorageTextureStart + STAPLE_STORAGE_TEXTURE_COUNT;
15+ #else
16+ public static const int StapleStorageTextureStart = 1 ;
17+ public static const int StapleStorageTextureCount = 1 ;
18+ #endif
19+
20+ #ifdef STAPLE_STORAGE_BUFFER_COUNT
21+ public static const int StapleStorageBufferStart = StapleStorageTextureCount;
22+ public static const int StapleStorageBufferCount = StapleStorageBufferStart + STAPLE_STORAGE_BUFFER_COUNT;
23+ #else
24+ public static const int StapleStorageBufferStart = 2 ;
25+ public static const int StapleStorageBufferCount = 2 ;
26+ #endif
27+
28+ #ifdef STAPLE_UNIFORM_BUFFER_COUNT
29+ public static const int StapleUniformBufferCount = STAPLE_UNIFORM_BUFFER_COUNT;
1030#else
11- public static const int StapleBufferIndexCount = 2 ;
31+ public static const int StapleUniformBufferCount = 0 ;
1232#endif
1333
1434#ifdef STAPLE_VERTEX_SHADER
15- public static const int StapleSamplerBufferSet = 0 ;
35+ public static const int StapleSamplerStorageBufferSet = 0 ;
1636public static const int StapleUniformBufferSet = 1 ;
1737#elif defined (STAPLE_FRAGMENT_SHADER )
18- public static const int StapleSamplerBufferSet = 2 ;
38+ public static const int StapleSamplerStorageBufferSet = 2 ;
1939public static const int StapleUniformBufferSet = 3 ;
2040#elif defined (STAPLE_COMPUTE_SHADER )
21- public static const int StapleSamplerBufferSet = 0 ;
41+ public static const int StapleSamplerStorageBufferSet = 0 ;
2242public static const int StapleReadWriteBufferSet = 1 ;
2343public static const int StapleUniformBufferSet = 2 ;
2444#else
25- public static const int StapleSamplerBufferSet = 0 ;
45+ public static const int StapleSamplerStorageBufferSet = 0 ;
2646public static const int StapleReadWriteBufferSet = 0 ;
2747public static const int StapleUniformBufferSet = 0 ;
2848#endif
2949
50+ public static const int StapleUniformBufferStart = 2 ;
51+
52+ #ifdef SKINNING
53+ public static const int StapleInternalStorageBufferCount = 1 ;
54+ #else
55+ public static const int StapleInternalStorageBufferCount = 0 ;
56+ #endif
57+
3058[[vk::binding(0 , StapleUniformBufferSet)]]
3159public cbuffer StapleRenderData
3260{
@@ -42,7 +70,7 @@ public cbuffer StapleFragmentRenderData
4270};
4371
4472#ifdef SKINNING
45- [[vk::binding(STAPLE_SKINNING_STAGE_INDEX, StapleUniformBufferSet )]]
73+ [[vk::binding(StapleStorageBufferStart, StapleSamplerStorageBufferSet )]]
4674public StructuredBuffer < float4 > StapleBoneMatrices;
4775#endif
4876
0 commit comments