2019-04-11 02:29:21 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include"VK.h"
|
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
2019-04-11 20:24:09 +08:00
|
|
|
|
|
|
|
|
|
constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX;
|
|
|
|
|
|
2019-04-11 02:29:21 +08:00
|
|
|
|
struct RenderSurfaceAttribute
|
|
|
|
|
{
|
|
|
|
|
VkInstance instance =nullptr;
|
|
|
|
|
VkPhysicalDevice physical_device =nullptr;
|
|
|
|
|
VkSurfaceKHR surface =nullptr;
|
|
|
|
|
VkSurfaceCapabilitiesKHR surface_caps;
|
|
|
|
|
VkExtent2D swapchain_extent;
|
|
|
|
|
|
2019-04-11 20:24:09 +08:00
|
|
|
|
uint32_t graphics_family =ERROR_FAMILY_INDEX;
|
|
|
|
|
uint32_t present_family =ERROR_FAMILY_INDEX;
|
2019-04-11 02:29:21 +08:00
|
|
|
|
|
|
|
|
|
List<VkQueueFamilyProperties> family_properties;
|
|
|
|
|
List<VkBool32> supports_present;
|
|
|
|
|
|
|
|
|
|
VkPhysicalDeviceFeatures features;
|
|
|
|
|
VkPhysicalDeviceProperties properties;
|
|
|
|
|
VkPhysicalDeviceMemoryProperties memory_properties;
|
|
|
|
|
|
|
|
|
|
List<VkSurfaceFormatKHR> surface_formts;
|
2019-04-11 20:24:09 +08:00
|
|
|
|
VkFormat format;
|
2019-04-11 02:29:21 +08:00
|
|
|
|
List<VkPresentModeKHR> present_modes;
|
|
|
|
|
|
2019-04-11 20:24:09 +08:00
|
|
|
|
VkSurfaceTransformFlagBitsKHR preTransform;
|
|
|
|
|
VkCompositeAlphaFlagBitsKHR compositeAlpha =VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
|
|
|
|
|
|
2019-04-11 02:29:21 +08:00
|
|
|
|
VkDevice device =nullptr;
|
|
|
|
|
VkCommandPool cmd_pool =nullptr;
|
2019-04-11 20:24:09 +08:00
|
|
|
|
VkSwapchainKHR swap_chain =nullptr;
|
2019-04-11 02:29:21 +08:00
|
|
|
|
|
2019-04-11 20:33:30 +08:00
|
|
|
|
List<VkImage> sc_images;
|
|
|
|
|
List<VkImageView> sc_image_views;
|
|
|
|
|
|
2019-04-11 21:12:54 +08:00
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
VkFormat format;
|
|
|
|
|
|
|
|
|
|
VkImage image =nullptr;
|
|
|
|
|
VkDeviceMemory mem =nullptr;
|
|
|
|
|
VkImageView view =nullptr;
|
|
|
|
|
}depth;
|
|
|
|
|
|
2019-04-11 02:29:21 +08:00
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice pd,VkSurfaceKHR s);
|
|
|
|
|
~RenderSurfaceAttribute();
|
2019-04-11 21:20:24 +08:00
|
|
|
|
|
|
|
|
|
bool CheckMemoryType(uint32_t,VkFlags,uint32_t *);
|
2019-04-11 02:29:21 +08:00
|
|
|
|
};//class RenderSurfaceAttribute
|
|
|
|
|
VK_NAMESPACE_END
|