mirror of
https://github.com/charles-lunarg/vk-bootstrap.git
synced 2024-11-26 00:34:35 +00:00
Added populated function to gen and exception handling to vk.xml fetch.
This commit is contained in:
parent
6eefc9c7e2
commit
b963aeb94b
@ -50,7 +50,7 @@ if xmltodict_missing:
|
|||||||
try:
|
try:
|
||||||
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'xmltodict'])
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'xmltodict'])
|
||||||
except subprocess.CalledProcessError as error:
|
except subprocess.CalledProcessError as error:
|
||||||
print("Unable to install xmltodict due to error:");
|
print("Failed to install xmltodict due to error:");
|
||||||
print(error);
|
print(error);
|
||||||
input("Press Enter to continue...");
|
input("Press Enter to continue...");
|
||||||
sys.exit();
|
sys.exit();
|
||||||
@ -61,7 +61,13 @@ if xmltodict_missing:
|
|||||||
import urllib.request
|
import urllib.request
|
||||||
import xmltodict
|
import xmltodict
|
||||||
|
|
||||||
with urllib.request.urlopen('https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/master/registry/vk.xml') as response:
|
try:
|
||||||
|
response = urllib.request.urlopen('https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/master/registry/vk.xml')
|
||||||
|
except urllib.error.URLError as error:
|
||||||
|
print("Failed to download vk.xml due to error:");
|
||||||
|
print(error.reason)
|
||||||
|
input("Press Enter to continue...");
|
||||||
|
sys.exit();
|
||||||
vk_xml_raw = response.read()
|
vk_xml_raw = response.read()
|
||||||
|
|
||||||
vk_xml = xmltodict.parse(vk_xml_raw,process_namespaces=True)
|
vk_xml = xmltodict.parse(vk_xml_raw,process_namespaces=True)
|
||||||
@ -188,6 +194,7 @@ body += 'namespace vkb {\n\n'
|
|||||||
body += 'struct DispatchTable {\n'
|
body += 'struct DispatchTable {\n'
|
||||||
body += '\tDispatchTable() = default;\n'
|
body += '\tDispatchTable() = default;\n'
|
||||||
body += '\tDispatchTable(VkDevice device, PFN_vkGetDeviceProcAddr procAddr) : device(device) {\n'
|
body += '\tDispatchTable(VkDevice device, PFN_vkGetDeviceProcAddr procAddr) : device(device) {\n'
|
||||||
|
body += '\t\tpopulated = true;\n'
|
||||||
|
|
||||||
proxy_section = ''
|
proxy_section = ''
|
||||||
fp_decl_section = ''
|
fp_decl_section = ''
|
||||||
@ -271,7 +278,10 @@ body += pfn_load_section
|
|||||||
body += '\t}\n'
|
body += '\t}\n'
|
||||||
body += proxy_section
|
body += proxy_section
|
||||||
body += fp_decl_section
|
body += fp_decl_section
|
||||||
|
body += '\tbool is_populated() const { return populated; }\n'
|
||||||
body += '\tVkDevice device = VK_NULL_HANDLE;\n'
|
body += '\tVkDevice device = VK_NULL_HANDLE;\n'
|
||||||
|
body += 'private:\n'
|
||||||
|
body += '\t bool populated = false;\n'
|
||||||
body += '};\n\n'
|
body += '};\n\n'
|
||||||
body += '} // namespace vkb'
|
body += '} // namespace vkb'
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ namespace vkb {
|
|||||||
struct DispatchTable {
|
struct DispatchTable {
|
||||||
DispatchTable() = default;
|
DispatchTable() = default;
|
||||||
DispatchTable(VkDevice device, PFN_vkGetDeviceProcAddr procAddr) : device(device) {
|
DispatchTable(VkDevice device, PFN_vkGetDeviceProcAddr procAddr) : device(device) {
|
||||||
|
populated = true;
|
||||||
fp_vkGetDeviceQueue = (PFN_vkGetDeviceQueue)procAddr(device, "vkGetDeviceQueue");
|
fp_vkGetDeviceQueue = (PFN_vkGetDeviceQueue)procAddr(device, "vkGetDeviceQueue");
|
||||||
fp_vkQueueSubmit = (PFN_vkQueueSubmit)procAddr(device, "vkQueueSubmit");
|
fp_vkQueueSubmit = (PFN_vkQueueSubmit)procAddr(device, "vkQueueSubmit");
|
||||||
fp_vkQueueWaitIdle = (PFN_vkQueueWaitIdle)procAddr(device, "vkQueueWaitIdle");
|
fp_vkQueueWaitIdle = (PFN_vkQueueWaitIdle)procAddr(device, "vkQueueWaitIdle");
|
||||||
@ -3528,7 +3529,10 @@ struct DispatchTable {
|
|||||||
#if (defined(VK_VERSION_1_2)) || (defined(VK_KHR_buffer_device_address))
|
#if (defined(VK_VERSION_1_2)) || (defined(VK_KHR_buffer_device_address))
|
||||||
PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR fp_vkGetDeviceMemoryOpaqueCaptureAddressKHR = nullptr;
|
PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR fp_vkGetDeviceMemoryOpaqueCaptureAddressKHR = nullptr;
|
||||||
#endif
|
#endif
|
||||||
|
bool is_populated() const { return populated; }
|
||||||
VkDevice device = VK_NULL_HANDLE;
|
VkDevice device = VK_NULL_HANDLE;
|
||||||
|
private:
|
||||||
|
bool populated = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace vkb
|
} // namespace vkb
|
Loading…
Reference in New Issue
Block a user