ULRE/example/Vulkan/RenderSurface.h

53 lines
1.3 KiB
C
Raw Normal View History

#ifndef HGL_GRAPH_RENDER_SURFACE_INCLUDE
#define HGL_GRAPH_RENDER_SURFACE_INCLUDE
#include<hgl/type/List.h>
#include"VK.h"
#include"Window.h"
#include"VKCommandBuffer.h"
VK_NAMESPACE_BEGIN
class RenderSurface
{
Window *win;
VkInstance instance;
VkPhysicalDevice physical_device;
VkSurfaceKHR surface;
VkPhysicalDeviceFeatures features;
VkPhysicalDeviceProperties properties;
VkPhysicalDeviceMemoryProperties memory_properties;
List<VkQueueFamilyProperties> family_properties;
List<VkBool32> supports_present;
List<VkSurfaceFormatKHR> surface_formts;
VkSurfaceCapabilitiesKHR surface_caps;
List<VkPresentModeKHR> present_modes;
uint32_t family_index;
VkDevice device;
VkCommandPool cmd_pool; ///<<3C><><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>֪<EFBFBD><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>кô<D0BA><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD>豸ֻ<E8B1B8><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
protected:
int QueueFamilyProperties(VkQueueFlags) const;
bool CreateDevice();
bool CreateCommandPool();
public:
RenderSurface(Window *,VkInstance,VkPhysicalDevice);
virtual ~RenderSurface();
VkPhysicalDevice GetPhysicalDevice() { return physical_device; }
VkSurfaceKHR GetSurface() { return surface; }
public:
CommandBuffer *CreateCommandBuffer();
};//class RenderSurface
VK_NAMESPACE_END
#endif//HGL_GRAPH_RENDER_SURFACE_INCLUDE