summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrChat <arkolbed@gmail.com>2017-08-06 18:24:48 -0500
committerDrChat <arkolbed@gmail.com>2017-08-06 18:24:48 -0500
commitc656d9534535ab8b3d4bfc4e7799d421aeba09db (patch)
tree13caea6fba3a04db7bddf3cca06e24abf662b0c4
parent2ba0ebb4cb6c50e23151c6fff312b993327db278 (diff)
Vk Immediate: Get Sampler
-rw-r--r--src/xenia/ui/vulkan/vulkan_immediate_drawer.cc33
-rw-r--r--src/xenia/ui/vulkan/vulkan_immediate_drawer.h2
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;