Vulkan-Hpp/vulkan
Ilya Doroshenko 5d0d3b7bd9
Shared Handles (#1619)
* stage 1: added shared handles and all traits

* moved deleter to the shared part, now Shared handle weights 2 pointers

* Fixed Destroy Function

* generated headers

* At least no errors.

TODO: get image overload of shared handle back
make an example

* fixed all SFINAE issues, moved image specialization

* Added a sample

* made better example, added specialization for swapchain, added shared handles to readme

* Major update:
Fixed all wishes
Made std::shared_ptr do heavy lifting
Reduced code complexity
Added ParentType to basic handles
Added put and put_native for cross-abi usage

* more readme

* safer release()
removed put() for now

* better synchronization
inspired by STL shared_ptr implementation

* removed test shared pointer

* added forward type for better interop with VMA
added parent checking

* fixed getParent()

* added non-deleting overloads for Queue, DisplayKHR and PhysicalDevice

* Shared non-destoyed type now have handles

* using constructors are made to comply standard

* fixed leak

* shared handles migrated to own header,
made module entries

* header is independent now

* rebased repo, updated the example

* fixed most of the stuff

* renamed parent of, added guide to make shared handles

* vulkansc

* moved destructor to shared handle traits

* resolved issues with CI

* more relaxed memory ordering for release operation

* trying to remove submodule

* renamed to destructorType

* suppressed function cast warning

* only GCC should be affected
2023-09-19 13:04:36 +02:00
..
vulkan_enums.hpp Move Flags<> and FlagTraits<> from vulkan.hpp to vulkan_enums.hpp (#1654) 2023-09-07 18:42:46 +02:00
vulkan_extension_inspection.hpp Update Vulkan-Headers to v1.3.262 (#1647) 2023-08-28 11:05:58 +02:00
vulkan_format_traits.hpp Update Vulkan-Headers to v1.3.260 (#1629) 2023-07-31 13:37:47 +02:00
vulkan_funcs.hpp Update Vulkan-Headers to v1.3.260 (#1629) 2023-07-31 13:37:47 +02:00
vulkan_handles.hpp Update Vulkan-Headers to v1.3.262 (#1647) 2023-08-28 11:05:58 +02:00
vulkan_hash.hpp Update Vulkan-Headers to v1.3.262 (#1647) 2023-08-28 11:05:58 +02:00
vulkan_hpp_macros.hpp Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
vulkan_raii.hpp Update Vulkan-Headers to v1.3.260 (#1629) 2023-07-31 13:37:47 +02:00
vulkan_shared.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
vulkan_static_assertions.hpp Update Vulkan-Headers to v1.3.262 (#1647) 2023-08-28 11:05:58 +02:00
vulkan_structs.hpp Introduce hard-coded default values for some structure members. (#1658) 2023-09-19 12:05:06 +02:00
vulkan_to_string.hpp Update Vulkan-Headers to v1.3.262 (#1647) 2023-08-28 11:05:58 +02:00
vulkan_video.hpp Introduce VideoHppGenerator. (#1618) 2023-07-11 15:39:17 +02:00
vulkan.cppm Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
vulkan.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
vulkansc_enums.hpp Move Flags<> and FlagTraits<> from vulkan.hpp to vulkan_enums.hpp (#1654) 2023-09-07 18:42:46 +02:00
vulkansc_extension_inspection.hpp Update Vulkan-Headers to v1.3.255 (#1604) 2023-06-26 14:12:49 +02:00
vulkansc_format_traits.hpp Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
vulkansc_funcs.hpp Update Vulkan-Headers to v1.3.255 (#1604) 2023-06-26 14:12:49 +02:00
vulkansc_handles.hpp Update Vulkan-Headers to v1.3.255 (#1604) 2023-06-26 14:12:49 +02:00
vulkansc_hash.hpp Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
vulkansc_hpp_macros.hpp Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
vulkansc_raii.hpp Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
vulkansc_shared.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
vulkansc_static_assertions.hpp Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
vulkansc_structs.hpp Update Vulkan-Headers to v1.3.255 (#1604) 2023-06-26 14:12:49 +02:00
vulkansc_to_string.hpp Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
vulkansc.cppm Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
vulkansc.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00