18 void* itemPtr =
nullptr;
19 BindingType bindingType;
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 std::move(Binding(samplerPtr, BindingType::Sampler, count));
32 static Binding&& CombinedImageSampler(std::pair<Image*, GraphicsAPI::Sampler*>* combinedSamplerPtr, uint32_t count = 1) {
33 return std::move(Binding(combinedSamplerPtr, BindingType::CombinedImageSampler, count));
37 return std::move(Binding(imagePtr, BindingType::SampledImage, count));
41 return std::move(Binding(imagePtr, BindingType::StorageImage, count));
44 static Binding&& UniformTexelBuffer(
GraphicsAPI::Image* imagePtr, uint32_t count = 1) {
45 return std::move(Binding(imagePtr, BindingType::UniformTexelBuffer, count));
48 static Binding&& StorageTexelBuffer(
GraphicsAPI::Image* imagePtr, uint32_t count = 1) {
49 return std::move(Binding(imagePtr, BindingType::StorageTexelBuffer, count));
53 return std::move(Binding(bufferPtr, BindingType::UniformBuffer, count));
57 return std::move(Binding(bufferPtr, BindingType::StorageBuffer, count));
61 return std::move(Binding(bufferPtr, BindingType::UniformBufferDynamic, count));
65 return std::move(Binding(bufferPtr, BindingType::UniformBufferDynamic, count));