Vulkan.cppm 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. module;
  2. #define GLFW_INCLUDE_VULKAN
  3. #include <GLFW/glfw3.h>
  4. export module Core.Vulkan;
  5. export import Core.Types;
  6. // NOLINTBEGIN(misc-unused-using-decls)
  7. export using ::glfwCreateWindowSurface;
  8. export using ::glfwGetRequiredInstanceExtensions;
  9. export using ::GLFWwindow;
  10. export using ::PFN_vkVoidFunction;
  11. export using ::VkBuffer;
  12. export using ::VkCommandBuffer;
  13. export using ::VkCommandPool;
  14. export using ::VkDebugReportCallbackEXT;
  15. export using ::VkDebugUtilsMessengerEXT;
  16. export using ::VkDevice;
  17. export using ::VkDeviceMemory;
  18. export using ::VkExtent2D;
  19. export using ::VkFence;
  20. export using ::VkFormat;
  21. export using ::VkFramebuffer;
  22. export using ::VkImage;
  23. export using ::VkImageView;
  24. export using ::VkInstance;
  25. export using ::VkMemoryPropertyFlags;
  26. export using ::VkPhysicalDevice;
  27. export using ::VkPhysicalDeviceProperties;
  28. export using ::VkPipeline;
  29. export using ::VkPipelineLayout;
  30. export using ::VkPipelineStageFlags;
  31. export using ::VkPresentModeKHR;
  32. export using ::VkQueue;
  33. export using ::VkQueueFlags;
  34. export using ::VkRect2D;
  35. export using ::VkRenderPass;
  36. export using ::VkResult;
  37. export using ::VkSemaphore;
  38. export using ::VkShaderModule;
  39. export using ::VkSharingMode;
  40. export using ::VkSurfaceCapabilitiesKHR;
  41. export using ::VkSurfaceFormatKHR;
  42. export using ::VkSurfaceKHR;
  43. export using ::VkSwapchainKHR;
  44. export using ::VkVertexInputAttributeDescription;
  45. export using ::VkVertexInputBindingDescription;
  46. export using ::VkViewport;
  47. export using ::glfwGetFramebufferSize;
  48. export using ::vkEnumeratePhysicalDevices;
  49. export using ::VkFramebufferCreateInfo;
  50. export using ::vkCreateImageView;
  51. export using ::VkImageViewCreateInfo;
  52. export using ::VkStructureType;
  53. export using ::VkSemaphoreCreateInfo;
  54. export using ::VkFenceCreateFlagBits;
  55. export using ::vkCreateFence;
  56. export using ::VkFenceCreateInfo;
  57. export using ::vkCreateSemaphore;
  58. export using ::vkCreateFramebuffer;
  59. export using ::vkDestroyRenderPass;
  60. export using ::vkResetFences;
  61. export using ::vkWaitForFences;
  62. export using ::VkSwapchainCreateInfoKHR;
  63. export using ::VkImageUsageFlagBits;
  64. export using ::VkCompositeAlphaFlagBitsKHR;
  65. export using ::vkCreateSwapchainKHR;
  66. export using ::vkAcquireNextImageKHR;
  67. export using ::VkImageAspectFlagBits;
  68. export using ::VkImageViewType;
  69. export using ::vkDestroyCommandPool;
  70. export using ::vkDestroyPipeline;
  71. export using ::VkPipelineLayoutCreateInfo;
  72. export using ::vkCreatePipelineLayout;
  73. export using ::vkCreateShaderModule;
  74. export using ::vkDestroyImageView;
  75. export using ::vkDestroyFramebuffer;
  76. export using ::vkDestroySemaphore;
  77. export using ::vkDestroyFence;
  78. export using ::vkDestroySwapchainKHR;
  79. export using ::vkDestroyShaderModule;
  80. export using ::vkDestroyPipelineLayout;
  81. export using ::VkShaderModuleCreateInfo;
  82. export using ::VkAttachmentDescription;
  83. export using ::vkGetSwapchainImagesKHR;
  84. export using ::VkAccessFlagBits;
  85. export using ::VkRenderPassCreateInfo;
  86. export using ::vkCreateRenderPass;
  87. export using ::VkShaderStageFlagBits;
  88. export using ::VkPipelineVertexInputStateCreateInfo;
  89. export using ::VkPipelineInputAssemblyStateCreateInfo;
  90. export using ::VkPipelineViewportStateCreateInfo;
  91. export using ::VkPrimitiveTopology;
  92. export using ::VkPipelineShaderStageCreateInfo;
  93. export using ::VkPipelineRasterizationStateCreateInfo;
  94. export using ::VkPolygonMode;
  95. export using ::VkCullModeFlagBits;
  96. export using ::VkFrontFace;
  97. export using ::VkSampleCountFlagBits;
  98. export using ::VkBlendFactor;
  99. export using ::VkBlendOp;
  100. export using ::VkColorComponentFlagBits;
  101. export using ::VkPipelineColorBlendAttachmentState;
  102. export using ::VkPipelineColorBlendStateCreateInfo;
  103. export using ::VkLogicOp;
  104. export using ::VkDynamicState;
  105. export using ::VkSampleCountFlagBits;
  106. export using ::VkGraphicsPipelineCreateInfo;
  107. export using ::VkPipelineDynamicStateCreateInfo;
  108. export using ::VkPipelineMultisampleStateCreateInfo;
  109. export using ::VkCommandPoolCreateFlagBits;
  110. export using ::VkAttachmentLoadOp;
  111. export using ::VkAttachmentStoreOp;
  112. export using ::VkImageLayout;
  113. export using ::VkAttachmentReference;
  114. export using ::VkSubpassDescription;
  115. export using ::VkSubpassDependency;
  116. export using ::VkPipelineBindPoint;
  117. export using ::vkEndCommandBuffer;
  118. export using ::vkBeginCommandBuffer;
  119. export using ::VkCommandBufferBeginInfo;
  120. export using ::VkRenderPassBeginInfo;
  121. export using ::VkClearValue;
  122. export using ::vkCmdEndRenderPass;
  123. export using ::vkCmdSetViewport;
  124. export using ::vkCmdBindPipeline;
  125. export using ::vkCmdSetScissor;
  126. export using ::vkCmdDraw;
  127. export using ::vkGetDeviceQueue;
  128. export using ::VkSubmitInfo;
  129. export using ::VkSubpassContents;
  130. export using ::vkCmdBeginRenderPass;
  131. export using ::vkQueueSubmit;
  132. export using ::VkPipelineStageFlagBits;
  133. export using ::VkImageUsageFlagBits;
  134. export using ::vkCreateGraphicsPipelines;
  135. export using ::VkCommandPoolCreateInfo;
  136. export using ::vkCreateCommandPool;
  137. export using ::VkMemoryRequirements;
  138. export using ::VkBufferUsageFlagBits;
  139. export using ::VkBufferCreateInfo;
  140. export using ::vkDestroyBuffer;
  141. export using ::VkMemoryPropertyFlagBits;
  142. export using ::vkAllocateMemory;
  143. export using ::VkMemoryAllocateInfo;
  144. export using ::vkBindBufferMemory;
  145. export using ::vkMapMemory;
  146. export using ::vkGetBufferMemoryRequirements;
  147. export using ::vkCreateBuffer;
  148. export using ::vkFreeMemory;
  149. export using ::VkPresentInfoKHR;
  150. export using ::vkQueuePresentKHR;
  151. export using ::VkVertexInputRate;
  152. export using ::VkCommandBufferAllocateInfo;
  153. export using ::VkCommandBufferLevel;
  154. export using ::VkQueueFlagBits;
  155. export using ::VkPhysicalDeviceType;
  156. export using ::VkColorSpaceKHR;
  157. export using ::vkAllocateCommandBuffers;
  158. export using ::vkResetCommandBuffer;
  159. export using ::vkUnmapMemory;
  160. export using ::VkDeviceSize;
  161. export using ::vkCmdBindVertexBuffers;
  162. export using ::VkMemoryPropertyFlagBits;
  163. export using ::VkMemoryPropertyFlagBits;
  164. export using ::VkMemoryPropertyFlagBits;
  165. export using ::VkMemoryPropertyFlagBits;
  166. export using ::VkMemoryPropertyFlagBits;
  167. export using ::VkMemoryPropertyFlagBits;
  168. static_assert(VK_NULL_HANDLE == nullptr);
  169. #undef VK_NULL_HANDLE
  170. export inline auto VK_NULL_HANDLE = nullptr;
  171. static_assert(VK_TRUE == true);
  172. #undef VK_TRUE
  173. export inline bool VK_TRUE = true;
  174. static_assert(VK_SUBPASS_EXTERNAL == ~0u);
  175. #undef VK_SUBPASS_EXTERNAL
  176. export inline u32 VK_SUBPASS_EXTERNAL = ~0u;
  177. #undef VK_KHR_SWAPCHAIN_EXTENSION_NAME
  178. export inline const char* VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
  179. // NOLINTEND(misc-unused-using-decls)