23 lines
926 B
Plaintext
23 lines
926 B
Plaintext
[vk::binding(0, 0)] __DynamicResource<__DynamicResourceKind.General> gBuffers[];
|
|
[vk::binding(1, 0)] __DynamicResource<__DynamicResourceKind.Sampler> gSamplers[];
|
|
[vk::binding(2, 0)] __DynamicResource<__DynamicResourceKind.General> gStorageTextures[];
|
|
|
|
export T getDescriptorFromHandle<T>(DescriptorHandle<T> handle) where T : IOpaqueDescriptor
|
|
{
|
|
__target_switch
|
|
{
|
|
case spirv:
|
|
switch (T.kind) {
|
|
case DescriptorKind.Buffer:
|
|
return gBuffers[((uint2)handle).x].asOpaqueDescriptor<T>();
|
|
case DescriptorKind.CombinedTextureSampler:
|
|
return gSamplers[((uint2)handle).x].asOpaqueDescriptor<T>();
|
|
case DescriptorKind.Texture:
|
|
return gStorageTextures[((uint2)handle).x].asOpaqueDescriptor<T>();
|
|
default:
|
|
return defaultGetDescriptorFromHandle(handle);
|
|
}
|
|
default:
|
|
return defaultGetDescriptorFromHandle(handle);
|
|
}
|
|
} |