diff options
| author | DrChat <arkolbed@gmail.com> | 2017-08-06 18:24:48 -0500 |
|---|---|---|
| committer | DrChat <arkolbed@gmail.com> | 2017-08-06 18:24:48 -0500 |
| commit | c656d9534535ab8b3d4bfc4e7799d421aeba09db (patch) | |
| tree | 13caea6fba3a04db7bddf3cca06e24abf662b0c4 /src | |
| parent | 2ba0ebb4cb6c50e23151c6fff312b993327db278 (diff) | |
Vk Immediate: Get Sampler
Diffstat (limited to 'src')
| -rw-r--r-- | src/xenia/ui/vulkan/vulkan_immediate_drawer.cc | 33 | ||||
| -rw-r--r-- | 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<ImmediateTexture> 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<VulkanImmediateTexture>( 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; |
