QVulkanDeviceFunctions Class
QVulkanDeviceFunctionsクラスは、デバイスレベルのコアVulkan 1.3 APIへのクロスプラットフォームなアクセスを提供します。詳細...
ヘッダー | #include <QVulkanDeviceFunctions> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmakeです: | QT += gui |
- QVulkanDeviceFunctionsは、3Dレンダリングの一部です。
詳しい説明
Qt と Qt アプリケーションは、デフォルトではどの Vulkan ライブラリにもリンクしません。代わりに、すべての関数は実行時に動的に解決されます。各QVulkanInstance は、QVulkanInstance::functions() を介して取得可能なQVulkanFunctions オブジェクトを提供します。内部ディスパッチの潜在的なオーバーヘッドを避けるため、このオブジェクトにはデバイスレベルの関数は含まれていません。その代わりに、デバイス、またはデバイスのディスパッチ可能な子オブジェクトに依存する関数は、QVulkanDeviceFunctions とQVulkanInstance::deviceFunctions() を介して公開されます。QVulkanFunctions と QVulkanDeviceFunctions を一緒に使用すると、拡張機能を除いた、コアの Vulkan API 全体にアクセスできます。
注意: QVulkanDeviceFunctionsインスタンスを直接構築することはできません。
典型的な使用方法は以下の通りです:
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanDeviceFunctions *df = inst->deviceFunctions(device); VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); // ... }
提供されたVkDeviceに固有のQVulkanDeviceFunctionsオブジェクトは、QVulkanInstance::deviceFunctions ()が問題のデバイスで最初に呼び出されたときに作成されます。このオブジェクトは内部的にキャッシュされます。
追加関数にアクセスするには、アプリケーションはQVulkanInstance::getInstanceProcAddr() と vkGetDeviceProcAddr() を使用できます。多くの実装がコアコマンドの関数シンボルをエクスポートしているため、アプリケーションはVulkanライブラリに直接リンクすることもできます。詳細については、vkGetInstanceProcAddrのマニュアルページを参照してください。
QVulkanInstance 、QVulkanFunctions 、QWindow::setVulkanInstance() 、QWindow::setSurfaceType()も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.