From dd2c1dd9385616e97b719e28accab712c5d419c4 Mon Sep 17 00:00:00 2001 From: Lenny Komow Date: Tue, 19 Dec 2017 16:38:37 -0700 Subject: loader: Add pre-instance functions for layers Allow implicit layers (not explicit) to intercept calls before an instance has been created. Change-Id: I41f5bb0f5a6314fbab8003ebe71059dd04afc860 --- scripts/loader_extension_generator.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'scripts') diff --git a/scripts/loader_extension_generator.py b/scripts/loader_extension_generator.py index 84cc4ca4..370112d3 100644 --- a/scripts/loader_extension_generator.py +++ b/scripts/loader_extension_generator.py @@ -44,6 +44,9 @@ DEVICE_CMDS_NEED_TERM = ['vkGetDeviceProcAddr', 'vkDebugMarkerSetObjectTagEXT', 'vkDebugMarkerSetObjectNameEXT'] +PRE_INSTANCE_FUNCTIONS = ['vkEnumerateInstanceExtensionProperties', + 'vkEnumerateInstanceLayerProperties'] + # # LoaderExtensionGeneratorOptions - subclass of GeneratorOptions. class LoaderExtensionGeneratorOptions(GeneratorOptions): @@ -655,6 +658,9 @@ class LoaderExtensionOutputGenerator(OutputGenerator): new_terminator = cur_cmd.cdecl mod_string = new_terminator.replace("VKAPI_CALL vk", "VKAPI_CALL terminator_") + if cur_cmd.name in PRE_INSTANCE_FUNCTIONS: + mod_string = mod_string.replace(cur_cmd.name[2:] + '(\n', cur_cmd.name[2:] + '(\n const Vk' + cur_cmd.name[2:] + 'Chain* chain,\n') + if (cur_cmd.protect != None): terminators += '#ifdef %s\n' % cur_cmd.protect -- cgit v1.2.3