# import vulkan # , device # , q # #[ # // A list of present modes in order of priority (vector[0] has high priority, vector[size-1] has low priority) # std::vector<VkPresentModeKHR> present_mode_priority_list = # { # VK_PRESENT_MODE_FIFO_KHR, # VK_PRESENT_MODE_MAILBOX_KHR # }; # // A list of surface formats in order of priority (vector[0] has high priority, vector[size-1] has low priority) # std::vector<VkSurfaceFormatKHR> surface_format_priority_list = { # {VK_FORMAT_R8G8B8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}, # {VK_FORMAT_B8G8R8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}, # {VK_FORMAT_R8G8B8A8_UNORM, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}, # {VK_FORMAT_B8G8R8A8_UNORM, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}}; # ]# # const bufferPoolBlockSize: uint32 = 256 # type # RenderFrameObj = object of RootObj # surface_extent*: VkExtent2D # device*: Device # q*: Queue # swapchain_properties*: SwapchainProperties # prepared*: bool # active*: bool # currFrameInd*: uin32 # framePtrs*: seq[ptr RenderFrames] # theSemaphore*: VkSemaphore # # VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR # preTransform*: VkSurfaceTransformFlagBitsKHR # RenderFrame* = ref object of RenderFrameObj # proc aDevice: VkDevice = nil # proc aFence: VkFence = nil