51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
/**
|
|
******************************************************************************
|
|
* 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_
|