[PATCH 3/4] winevulkan: Support VK_NO_PROTOTYPES in our Vulkan header.

Józef Kucia jkucia at codeweavers.com
Tue Apr 3 04:13:10 CDT 2018


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/vulkan-1/vulkan.c           | 1 +
 dlls/winevulkan/make_vulkan      | 7 ++-----
 dlls/winevulkan/vulkan.c         | 4 ----
 dlls/winevulkan/vulkan_private.h | 6 ++++++
 dlls/winevulkan/vulkan_thunks.c  | 4 ----
 dlls/winex11.drv/vulkan.c        | 1 +
 include/wine/vulkan.h            | 2 ++
 7 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/dlls/vulkan-1/vulkan.c b/dlls/vulkan-1/vulkan.c
index 6f7ab43c4f1f..82fd868baf5c 100644
--- a/dlls/vulkan-1/vulkan.c
+++ b/dlls/vulkan-1/vulkan.c
@@ -23,6 +23,7 @@
 #include "winbase.h"
 
 #include "wine/debug.h"
+#define VK_NO_PROTOTYPES
 #include "wine/vulkan.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index edaaadb5cdda..7465395603d5 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -1792,10 +1792,6 @@ class VkGenerator(object):
         f.write("#include \"config.h\"\n")
         f.write("#include \"wine/port.h\"\n\n")
 
-        f.write("#include \"wine/debug.h\"\n")
-        f.write("#include \"wine/heap.h\"\n")
-        f.write("#include \"wine/vulkan.h\"\n")
-        f.write("#include \"wine/vulkan_driver.h\"\n")
         f.write("#include \"vulkan_private.h\"\n\n")
 
         f.write("WINE_DEFAULT_DEBUG_CHANNEL(vulkan);\n\n")
@@ -2071,6 +2067,7 @@ class VkGenerator(object):
             LOGGER.debug("Generating struct: {0}".format(struct.name))
             f.write(struct.definition(align=True))
 
+        f.write("#ifndef VK_NO_PROTOTYPES\n")
         for func in self.registry.funcs.values():
             if not func.is_required():
                 LOGGER.debug("Skipping API definition for: {0}".format(func.name))
@@ -2078,7 +2075,7 @@ class VkGenerator(object):
 
             LOGGER.debug("Generating API definition for: {0}".format(func.name))
             f.write("{0};\n".format(func.prototype(call_conv="VKAPI_CALL")))
-        f.write("\n")
+        f.write("#endif /* VK_NO_PROTOTYPES */\n\n")
 
         f.write("#endif /* __WINE_VULKAN_H */\n")
 
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 886b345a1510..c507e37abc02 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -23,10 +23,6 @@
 #include "winbase.h"
 #include "winuser.h"
 
-#include "wine/debug.h"
-#include "wine/heap.h"
-#include "wine/vulkan.h"
-#include "wine/vulkan_driver.h"
 #include "vulkan_private.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h
index 30ab62547f74..ce13b1a9b29d 100644
--- a/dlls/winevulkan/vulkan_private.h
+++ b/dlls/winevulkan/vulkan_private.h
@@ -25,6 +25,12 @@
 #define USE_STRUCT_CONVERSION
 #endif
 
+#include "wine/debug.h"
+#include "wine/heap.h"
+#define VK_NO_PROTOTYPES
+#include "wine/vulkan.h"
+#include "wine/vulkan_driver.h"
+
 #include "vulkan_thunks.h"
 
 /* Magic value defined by Vulkan ICD / Loader spec */
diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c
index 17a2d2fe75e7..31f78dcb3ae3 100644
--- a/dlls/winevulkan/vulkan_thunks.c
+++ b/dlls/winevulkan/vulkan_thunks.c
@@ -3,10 +3,6 @@
 #include "config.h"
 #include "wine/port.h"
 
-#include "wine/debug.h"
-#include "wine/heap.h"
-#include "wine/vulkan.h"
-#include "wine/vulkan_driver.h"
 #include "vulkan_private.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c
index 28563f8c8a98..148908b5117d 100644
--- a/dlls/winex11.drv/vulkan.c
+++ b/dlls/winex11.drv/vulkan.c
@@ -33,6 +33,7 @@
 
 /* We only want host compatible structures and don't need alignment. */
 #define WINE_VK_ALIGN(x)
+#define VK_NO_PROTOTYPES
 
 #include "wine/vulkan.h"
 #include "wine/vulkan_driver.h"
diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h
index 1ab270161e4f..490af538b40b 100644
--- a/include/wine/vulkan.h
+++ b/include/wine/vulkan.h
@@ -2617,6 +2617,7 @@ typedef struct VkPhysicalDeviceProperties2KHR
     VkPhysicalDeviceProperties WINE_VK_ALIGN(8) properties;
 } VkPhysicalDeviceProperties2KHR;
 
+#ifndef VK_NO_PROTOTYPES
 VkResult VKAPI_CALL vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t *pImageIndex);
 VkResult VKAPI_CALL vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo, VkCommandBuffer *pCommandBuffers);
 VkResult VKAPI_CALL vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo *pAllocateInfo, VkDescriptorSet *pDescriptorSets);
@@ -2783,5 +2784,6 @@ void VKAPI_CALL vkUnmapMemory(VkDevice device, VkDeviceMemory memory);
 void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void *pData);
 void VKAPI_CALL vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies);
 VkResult VKAPI_CALL vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence *pFences, VkBool32 waitAll, uint64_t timeout);
+#endif /* VK_NO_PROTOTYPES */
 
 #endif /* __WINE_VULKAN_H */
-- 
2.16.1




More information about the wine-devel mailing list