53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
|
#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
|