[Vulkan] 预习

你不用知道我在干什么,等我玩腻了你就知道我玩什么了~= ̄ω ̄=

InitVulkan
    dlopen(vulkan.so)
    CreateVulkanDevice
        vkCreateInstance
        vkCreateAndroidSurfaceKHR
        vkeEnumeratePhysicalDevices
        vkGetPhysicalDeviceQueueFamilyProperties
        vkCreateDevice
        vkGetDeviceQueue
    CreateSwapchain
        vkGetPhysicalDeviceSurfaceCapabilitiesKHR
        vkGetPhysicalDeviceSurfaceFormatsKHR
        vkCreateSwapchainKHR
        vkGetSwapchainImagesKHR
    vkCreateRenderPass
    CreateFrameBuffers
        vkGetSwapchainImageKHR
        vkCreateImageView
        vkCreateFramebuffer -> for each swapchain
    CreateBuffers
        vkCreateBuffer
        vkGetBufferMemoryRequirments
        MapMemoryTypeToIndex
            vkPhysicalDeviceMemoryProperties
            vkGetPhysicalDeviceMemoryProperties
        vkAllocateMemory
        vkMapMemory
        vkUnmapMemory
        vkBindBufferMemory
    CreateGraphicsPipeline
        vkCreatePipelineLayout
        vkCreateShaderModule -> for vertex shader
        vkCreateShaderModule -> for fragment shader
        vkCreatePipelineCache
        vkCreateGraphicsPipeline
        vkDestoryShaderModule -> for vertex shader
        vkDestoryShaderModule -> for fragment shader
    vkCreateCommandPool
    vkAllocateCommandBuffers
        [ -> for each swapchain
            vkBeginCommandBuffer
            setImageLayout
                vkCmdPipelineBarrier
            vkCmdBeginRenderPass
            vkCmdBindPipeline
            vkCmdBindVertexBuffers
            vkCmdDraw
            vkCmdEndRenderPass
            setImageLayout
                vkCmdPipelineBarrier
    vkCreateFence
    vkCreateSemaphore
VulkanDrawFrame
    vkAcquireNextImageKHR
    vkResetFences
    vkQueueSubmit
    vkWaitForFences
    vkQueuePresentKHR
DeleteVulkan
    vkFreeCommandBuffers
    vkDestroyCommandPool
    vkDestroyRenderPass
    DeleteSwapChain
        [ -> for each swapchain
            vkDestroyFramebuffer
            vkDestroyImageView
            vkDestroyImage
        vkDestroySwapchainKHR
    DeleteGraphicsPipeline
        vkDestroyPipeline
        vkDestroyPipelineCache
        vkDestroyPipelineLayout
    DeleteBuffers
        vkDestroyBuffer
    vkDestroyDevice