From 0b8e4cb93862ed8f8a7a252120554ddd073223b4 Mon Sep 17 00:00:00 2001 From: asuessenbach Date: Wed, 16 Sep 2020 09:36:37 +0200 Subject: [PATCH] Introduce helper function ResultValue>::asTuple() Allows coding like this: vk::Result result; vk::UniquePipeline pipeline; std::tie( result, pipeline ) = device->createGraphicsPipelineUnique( nullptr, graphicsPipelineCreateInfo ).asTuple(); --- VulkanHppGenerator.cpp | 9 +++++++-- samples/14_InitPipeline/14_InitPipeline.cpp | 8 +++++--- vulkan/vulkan.hpp | 9 +++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index fb005c6..da42f0c 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -9436,8 +9436,10 @@ namespace std , value(std::move(v)) {} - Result result; - UniqueHandle value; + std::tuple> asTuple() + { + return std::make_tuple( result, std::move( value ) ); + } # if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST) VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") @@ -9452,6 +9454,9 @@ namespace std return std::move(value); } # endif + + Result result; + UniqueHandle value; }; template diff --git a/samples/14_InitPipeline/14_InitPipeline.cpp b/samples/14_InitPipeline/14_InitPipeline.cpp index 639889b..d32725e 100644 --- a/samples/14_InitPipeline/14_InitPipeline.cpp +++ b/samples/14_InitPipeline/14_InitPipeline.cpp @@ -161,9 +161,11 @@ int main( int /*argc*/, char ** /*argv*/ ) renderPass.get() // renderPass ); - vk::ResultValue pipeline = - device->createGraphicsPipelineUnique( nullptr, graphicsPipelineCreateInfo ); - switch ( pipeline.result ) + vk::Result result; + vk::UniquePipeline pipeline; + std::tie( result, pipeline ) = + device->createGraphicsPipelineUnique( nullptr, graphicsPipelineCreateInfo ).asTuple(); + switch ( result ) { case vk::Result::eSuccess: break; case vk::Result::ePipelineCompileRequiredEXT: diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index bfa3ce3..939e848 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -16369,8 +16369,10 @@ namespace VULKAN_HPP_NAMESPACE , value( std::move( v ) ) {} - Result result; - UniqueHandle value; + std::tuple> asTuple() + { + return std::make_tuple( result, std::move( value ) ); + } # if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) VULKAN_HPP_DEPRECATED( @@ -16387,6 +16389,9 @@ namespace VULKAN_HPP_NAMESPACE return std::move( value ); } # endif + + Result result; + UniqueHandle value; }; template