ULRE/inc/hgl/graph/vulkan/VKDeviceAttribute.h

65 lines
2.0 KiB
C
Raw Normal View History

#pragma once
#include"VK.h"
#include"VKImageView.h"
VK_NAMESPACE_BEGIN
2019-04-11 20:24:09 +08:00
constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX;
2019-04-18 22:10:24 +08:00
struct PhysicalDevice;
2019-04-18 16:06:44 +08:00
struct DeviceAttribute
{
VkInstance instance =nullptr;
const PhysicalDevice * 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;
VkQueue graphics_queue =nullptr;
VkQueue present_queue =nullptr;
List<VkQueueFamilyProperties> family_properties;
List<VkBool32> supports_present;
List<VkSurfaceFormatKHR> surface_formts;
2019-04-11 20:24:09 +08:00
VkFormat format;
List<VkPresentModeKHR> present_modes;
2019-04-11 20:24:09 +08:00
VkSurfaceTransformFlagBitsKHR preTransform;
VkCompositeAlphaFlagBitsKHR compositeAlpha =VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
VkDevice device =nullptr;
VkCommandPool cmd_pool =nullptr;
2019-04-11 20:24:09 +08:00
VkSwapchainKHR swap_chain =nullptr;
List<VkImage> sc_images;
ObjectList<ImageView> sc_image_views;
2019-04-11 21:12:54 +08:00
struct
{
VkFormat format;
VkImage image =nullptr;
VkDeviceMemory mem =nullptr;
ImageView * view =nullptr;
2019-04-11 21:12:54 +08:00
}depth;
2019-04-12 16:35:44 +08:00
VkDescriptorPool desc_pool =nullptr;
2019-04-19 20:30:08 +08:00
VkPipelineCache pipeline_cache =nullptr;
2019-04-12 16:35:44 +08:00
public:
2019-04-18 16:06:44 +08:00
DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s);
~DeviceAttribute();
2019-04-18 22:10:24 +08:00
bool CheckMemoryType(uint32_t typeBits,VkFlags requirements_mask,uint32_t *typeIndex) const;
2019-04-18 16:06:44 +08:00
};//class DeviceAttribute
VK_NAMESPACE_END