From c656d9534535ab8b3d4bfc4e7799d421aeba09db Mon Sep 17 00:00:00 2001 From: DrChat Date: Sun, 6 Aug 2017 18:24:48 -0500 Subject: [PATCH] Vk Immediate: Get Sampler --- .../ui/vulkan/vulkan_immediate_drawer.cc | 33 +++++++++++-------- src/xenia/ui/vulkan/vulkan_immediate_drawer.h | 2 ++ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/xenia/ui/vulkan/vulkan_immediate_drawer.cc b/src/xenia/ui/vulkan/vulkan_immediate_drawer.cc index 39948aabb..9f4b42427 100644 --- a/src/xenia/ui/vulkan/vulkan_immediate_drawer.cc +++ b/src/xenia/ui/vulkan/vulkan_immediate_drawer.cc @@ -651,19 +651,7 @@ std::unique_ptr VulkanImmediateDrawer::CreateTexture( const uint8_t* data) { auto device = context_->device(); - VkSampler sampler = nullptr; - switch (filter) { - case ImmediateTextureFilter::kNearest: - sampler = repeat ? samplers_.nearest_repeat : samplers_.nearest_clamp; - break; - case ImmediateTextureFilter::kLinear: - sampler = repeat ? samplers_.linear_repeat : samplers_.linear_clamp; - break; - default: - assert_unhandled_case(filter); - sampler = samplers_.nearest_clamp; - break; - } + VkSampler sampler = GetSampler(filter, repeat); auto texture = std::make_unique( device, descriptor_pool_, texture_set_layout_, sampler, width, height); @@ -810,6 +798,25 @@ void VulkanImmediateDrawer::EndDrawBatch() {} void VulkanImmediateDrawer::End() { current_cmd_buffer_ = nullptr; } +VkSampler VulkanImmediateDrawer::GetSampler(ImmediateTextureFilter filter, + bool repeat) { + VkSampler sampler = nullptr; + switch (filter) { + case ImmediateTextureFilter::kNearest: + sampler = repeat ? samplers_.nearest_repeat : samplers_.nearest_clamp; + break; + case ImmediateTextureFilter::kLinear: + sampler = repeat ? samplers_.linear_repeat : samplers_.linear_clamp; + break; + default: + assert_unhandled_case(filter); + sampler = samplers_.nearest_clamp; + break; + } + + return sampler; +} + } // namespace vulkan } // namespace ui } // namespace xe diff --git a/src/xenia/ui/vulkan/vulkan_immediate_drawer.h b/src/xenia/ui/vulkan/vulkan_immediate_drawer.h index 1db47f0d8..51afec8d6 100644 --- a/src/xenia/ui/vulkan/vulkan_immediate_drawer.h +++ b/src/xenia/ui/vulkan/vulkan_immediate_drawer.h @@ -44,6 +44,8 @@ class VulkanImmediateDrawer : public ImmediateDrawer { void EndDrawBatch() override; void End() override; + VkSampler GetSampler(ImmediateTextureFilter filter, bool repeat); + private: VulkanContext* context_ = nullptr;