* 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
* Make C++20 modules work with the defaultDispatchLoaderDynamic.
* Add vulkan_hpp_macros.hpp to list of installed files.
* Adjust the text on module in the readme.
* Rename module from vulkan to vulkan_hpp
* Adjust some comments.
* Add a little disclaimer to vulkan.cppm.
When using VULKAN_HPP_ENABLE_EXPERIMENTAL_CPP20_MODULES=ON with CMake 3.27.0 or 3.27.1,
you will get a very confusing error message:
```
CMake Error at CMakeLists.txt:346 (target_sources):
target_sources File set TYPE may only be "HEADERS"
```
This is because the value of `CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`
is not update to the correct value, disabling all experimental CMake
features.
This PR adds the value for 3.27.X and triggers an error for higher CMake
versions where this feature needs to be revised and
CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API if the feature is still
experimental.
The error message will look similar to this one (simulated for CMake
3.27.1)
```
CMake Error at CMakeLists.txt:30 (message):
VULKAN_HPP_ENABLE_EXPERIMENTAL_CPP20_MODULES is currently not supported for
CMake version 3.27.1! To add support inform yourself about the state of the
feature at
https://github.com/Kitware/CMake/blob/master/Help/dev/experimental.rst and
add the corresponding value of CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API to
Vulkan-Hpp's CMakeLists.txt
```