18 void* itemPtr =
nullptr;
19 BindingType bindingType = BindingType::None;
23 Binding(
const Binding& binding) =
default;
24 Binding(Binding&& binding) =
default;
25 Binding& operator=(
const Binding& binding) =
default;
26 Binding(
void* itemPtr, BindingType bindingType, uint32_t count = 1) : itemPtr(itemPtr), bindingType(bindingType), count(count) {}
29 return Binding(samplerPtr, BindingType::Sampler, count);
32 static Binding CombinedImageSampler(std::pair<Image*, GraphicsAPI::Sampler*>* combinedSamplerPtr, uint32_t count = 1) {
33 return Binding(combinedSamplerPtr, BindingType::CombinedImageSampler, count);
37 return Binding(imagePtr, BindingType::SampledImage, count);
41 return Binding(imagePtr, BindingType::StorageImage, count);
45 return Binding(imagePtr, BindingType::UniformTexelBuffer, count);
49 return Binding(imagePtr, BindingType::StorageTexelBuffer, count);
53 return Binding(bufferPtr, BindingType::UniformBuffer, count);
57 return Binding(bufferPtr, BindingType::StorageBuffer, count);
61 return Binding(bufferPtr, BindingType::UniformBufferDynamic, count);
65 return Binding(bufferPtr, BindingType::UniformBufferDynamic, count);