2016-03-23 12 views
2

Ich versuche, eine einfache vulkan-basierte Anwendung zu schreiben, aber wenn man versucht, die Oberfläche Erweiterung der Liste der aktivierten Erweiterungen hinzufügen, etwa so:VK_KHR_WIN32_SURFACE_EXTENSION_NAME undefined, in Vulkan-Code

enabledExtensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME); 
#if defined (_WIN32) 
    enabledExtensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME); 
#else 
    enabledExtensions.push_back(VK_KHR_XCB_SURFACE_EXTENSION_NAME); 
#endif 

Visual Studio beschwert sich, dass VK_KHR_WIN32_SURFACE_EXTENSION_NAME ist undefiniert.

Wenn ich mit der rechten Maustaste darauf klicke und zur Definition gehe, öffnet sich vulkan.h. Bei der Überprüfung von VK_USE_PLATFORM_WIN32_KHR finde ich dies auch undefiniert, was die Definition von VK_KHR_WIN32_SURFACE_EXTENSION_NAME verhindert. Könnte jemand erklären, wie man das repariert?

Antwort

9

Wie sich herausstellte, war ich einige Präprozessordirektiven in den Projekteinstellungen fehlen:

VK_PROTOTYPES 
VK_USE_PLATFORM_WIN32_KHR 

Ich hoffe, diese Informationen heraus hilft jeder, der das gleiche Problem hat.

+1

Es gibt keine VK_PROTOTYPES, aber VK_NO_PROTOTYPES, mit gegenteiliger Wirkung. Mit anderen Worten, um dieses Problem zu lösen, benötigen Sie nur VK_USE_PLATFORM_WIN32_KHR –