Vulkan-Hpp/snippets
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
..
ArrayProxy.hpp Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute. 2022-09-12 16:53:44 +02:00
ArrayProxyNoTemporaries.hpp Extent support of functions returning some typed value 2022-11-14 10:06:49 +01:00
ArrayWrapper1D.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
ArrayWrapper2D.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
defines.hpp Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
DispatchLoaderBase.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
DispatchLoaderDefault.hpp Add C++20 module interface file and tests (#1582) 2023-06-28 14:10:51 +02:00
DynamicLoader.hpp Switch __QNXNTO__ macro check to __QNX__ (#1646) 2023-08-30 12:26:18 +02:00
Exceptions.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
Flags.hpp Fix Flags<T>::operator~() 2022-11-07 11:28:15 +01:00
includes.hpp Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
macros.hpp Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
ObjectDestroy.hpp Expose the dispatch member of deleters (#1569) 2023-05-03 12:03:28 +02:00
ObjectFree.hpp Expose the dispatch member of deleters (#1569) 2023-05-03 12:03:28 +02:00
ObjectRelease.hpp Expose the dispatch member of deleters (#1569) 2023-05-03 12:03:28 +02:00
Optional.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
PoolFree.hpp Expose the dispatch member of deleters (#1569) 2023-05-03 12:03:28 +02:00
resultChecks.hpp Add C++20 module interface file and tests (#1582) 2023-06-28 14:10:51 +02:00
ResultValue.hpp Mark vk::ResultValue::asTuple() & as deprecated, introduce vk::ResultValue::asTuple() && (#1605) 2023-06-27 11:31:29 +02:00
SharedDestroy.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
SharedHandle.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
SharedHandleSpecializations.hpp Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
StridedArrayProxy.hpp Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute. 2022-09-12 16:53:44 +02:00
StructureChain.hpp Add specializations of std::tuple_element and std::tuple_size for vk::StructureChain. (#1602) 2023-06-22 14:02:39 +02:00
UniqueHandle.hpp Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00