/** ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** * Copyright 2016 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ #ifndef XENIA_GPU_VULKAN_TEXTURE_CONFIG_H_ #define XENIA_GPU_VULKAN_TEXTURE_CONFIG_H_ #include "third_party/volk/volk.h" #include "xenia/gpu/texture_info.h" #include "xenia/gpu/xenos.h" namespace xe { namespace gpu { namespace vulkan { typedef enum VectorSwizzle { VECTOR_SWIZZLE_X = 0, VECTOR_SWIZZLE_Y = 1, VECTOR_SWIZZLE_Z = 2, VECTOR_SWIZZLE_W = 3, } VectorSwizzle; struct TextureConfig { VkFormat host_format; struct { VkComponentSwizzle r = VK_COMPONENT_SWIZZLE_R; VkComponentSwizzle g = VK_COMPONENT_SWIZZLE_G; VkComponentSwizzle b = VK_COMPONENT_SWIZZLE_B; VkComponentSwizzle a = VK_COMPONENT_SWIZZLE_A; } component_swizzle; struct { VectorSwizzle x = VECTOR_SWIZZLE_X; VectorSwizzle y = VECTOR_SWIZZLE_Y; VectorSwizzle z = VECTOR_SWIZZLE_Z; VectorSwizzle w = VECTOR_SWIZZLE_W; } vector_swizzle; }; extern const TextureConfig texture_configs[64]; } // namespace vulkan } // namespace gpu } // namespace xe #endif // XENIA_GPU_VULKAN_TEXTURE_CONFIG_H_