| 120 | }; |
| 121 | |
| 122 | class HelloTriangleApplication { |
| 123 | public: |
| 124 | void run() { |
| 125 | initWindow(); |
| 126 | initVulkan(); |
| 127 | mainLoop(); |
| 128 | cleanup(); |
| 129 | } |
| 130 | |
| 131 | private: |
| 132 | GLFWwindow* window; |
| 133 | |
| 134 | VkInstance instance; |
| 135 | VkDebugUtilsMessengerEXT debugMessenger; |
| 136 | VkSurfaceKHR surface; |
| 137 | |
| 138 | VkPhysicalDevice physicalDevice = VK_NULL_HANDLE; |
| 139 | VkDevice device; |
| 140 | |
| 141 | VkQueue graphicsQueue; |
| 142 | VkQueue presentQueue; |
| 143 | |
| 144 | VkSwapchainKHR swapChain; |
| 145 | std::vector<VkImage> swapChainImages; |
| 146 | VkFormat swapChainImageFormat; |
| 147 | VkExtent2D swapChainExtent; |
| 148 | std::vector<VkImageView> swapChainImageViews; |
| 149 | std::vector<VkFramebuffer> swapChainFramebuffers; |
| 150 | |
| 151 | VkRenderPass renderPass; |
| 152 | VkDescriptorSetLayout descriptorSetLayout; |
| 153 | VkPipelineLayout pipelineLayout; |
| 154 | VkPipeline graphicsPipeline; |
| 155 | |
| 156 | VkCommandPool commandPool; |
| 157 | |
| 158 | VkImage textureImage; |
| 159 | VkDeviceMemory textureImageMemory; |
| 160 | VkImageView textureImageView; |
| 161 | VkSampler textureSampler; |
| 162 | |
| 163 | VkBuffer vertexBuffer; |
| 164 | VkDeviceMemory vertexBufferMemory; |
| 165 | VkBuffer indexBuffer; |
| 166 | VkDeviceMemory indexBufferMemory; |
| 167 | |
| 168 | std::vector<VkBuffer> uniformBuffers; |
| 169 | std::vector<VkDeviceMemory> uniformBuffersMemory; |
| 170 | std::vector<void*> uniformBuffersMapped; |
| 171 | |
| 172 | VkDescriptorPool descriptorPool; |
| 173 | std::vector<VkDescriptorSet> descriptorSets; |
| 174 | |
| 175 | std::vector<VkCommandBuffer> commandBuffers; |
| 176 | |
| 177 | std::vector<VkSemaphore> imageAvailableSemaphores; |
| 178 | std::vector<VkSemaphore> renderFinishedSemaphores; |
| 179 | std::vector<VkFence> inFlightFences; |
nothing calls this directly
no outgoing calls
no test coverage detected