1#ifndef LIBSBX_GRAPHICS_IMAGES_SEPARATE_SAMPLER_HPP_
2#define LIBSBX_GRAPHICS_IMAGES_SEPARATE_SAMPLER_HPP_
4#include <libsbx/graphics/graphics_module.hpp>
6#include <libsbx/graphics/descriptor/descriptor.hpp>
8#include <libsbx/graphics/images/image.hpp>
10namespace sbx::graphics {
16 separate_sampler(VkFilter filter = VK_FILTER_LINEAR, VkSamplerAddressMode address_mode = VK_SAMPLER_ADDRESS_MODE_REPEAT) {
17 image::create_image_sampler(_handle, filter, address_mode,
false, 1u);
21 auto&
graphics_module = core::engine::get_module<graphics::graphics_module>();
27 static auto create_descriptor_set_layout_binding(std::uint32_t binding, VkDescriptorType descriptor_type, VkShaderStageFlags shader_stage_flags)
noexcept -> VkDescriptorSetLayoutBinding {
28 auto descriptor_set_layout_binding = VkDescriptorSetLayoutBinding{};
29 descriptor_set_layout_binding.binding = binding;
30 descriptor_set_layout_binding.descriptorType = descriptor_type;
31 descriptor_set_layout_binding.stageFlags = shader_stage_flags;
32 descriptor_set_layout_binding.descriptorCount = 1u;
33 descriptor_set_layout_binding.pImmutableSamplers =
nullptr;
35 return descriptor_set_layout_binding;
39 auto descriptor_image_infos = std::vector<VkDescriptorImageInfo>{};
41 auto descriptor_image_info = VkDescriptorImageInfo{};
42 descriptor_image_info.imageLayout = VK_IMAGE_LAYOUT_UNDEFINED;
43 descriptor_image_info.imageView =
nullptr;
44 descriptor_image_info.sampler = _handle;
46 descriptor_image_infos.push_back(descriptor_image_info);
48 auto descriptor_write = VkWriteDescriptorSet{};
49 descriptor_write.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
50 descriptor_write.dstSet =
nullptr;
51 descriptor_write.dstBinding = binding;
52 descriptor_write.dstArrayElement = 0;
53 descriptor_write.descriptorCount = 1;
54 descriptor_write.descriptorType = descriptor_type;
59 auto handle()
const noexcept -> VkSampler {
63 operator VkSampler()
const noexcept {
Definition: descriptor.hpp:33
Module for managing rendering specific tasks.
Definition: graphics_module.hpp:59
Definition: logical_device.hpp:55
Definition: separate_sampler.hpp:12
Definition: descriptor.hpp:12