diff options
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_extension_provider.h')
-rw-r--r-- | src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_extension_provider.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_extension_provider.h b/src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_extension_provider.h new file mode 100644 index 00000000..090d56d3 --- /dev/null +++ b/src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_extension_provider.h @@ -0,0 +1,67 @@ +#pragma once + +#include "dxvk_include.h" +#include "dxvk_extensions.h" + +#include <vector> +#include <string> + +namespace dxvk { + + class DxvkInstance; + class DxvkExtensionProvider; + + /** + * \brief Extension provider base + * + * Abstract interface for extension + * providers + */ + class DxvkExtensionProvider { + + public: + + /** + * \brief Extension provider name + * \returns The extension provider's name + */ + virtual std::string_view getName() = 0; + + /** + * \brief Query instance extensions + * \returns Instance extensions + */ + virtual DxvkNameSet getInstanceExtensions() = 0; + + /** + * \brief Query device extensions + * + * Retrieves the extensions required for a specific + * physical device. The adapter index should remain + * the same across multiple Vulkan instances. + * \param [in] adapterId Adapter index + */ + virtual DxvkNameSet getDeviceExtensions( + uint32_t adapterId) = 0; + + /** + * \brief Initializes instance extension set + * + * Should be called before creating + * the first Vulkan instance. + */ + virtual void initInstanceExtensions() = 0; + + /** + * \brief Initializes device extension sets + * + * Should be called after setting + * up the Vulkan physical devices. + * \param [in] instance DXVK instance + */ + virtual void initDeviceExtensions( + const DxvkInstance* instance) = 0; + + }; + +}
\ No newline at end of file |