* Initial build and tests setup
* Enable the `CppStdModule` test
* Snippets and generator changes
* Generated files changes
* Enable std module with macro
* Unconditionally use `import std` with C++23
* Add support for external `import std` control with `VULKAN_HPP_ENABLE_STD_MODULE`
- Rewrite `includes.hpp` and `macros.hpp`
- Unconditionally set `VULKAN_HPP_ENABLE_STD_MODULE` for `vulkan.cppm` to bug-fix
- Generated necessary files again
* Top-level CMake changes
* Reorganise logic, and propagate external macro correctly
* RAII: vulkan_hpp before ifdef
* Define `VK_USE_64_BIT_PTR_DEFINES` in `vulkan_hpp_macros.hpp`
* Generate the `VK_USE_64_BIT_PTR_DEFINES` clause from the XML instead of hardcoding it
* Refactored handling for `VK_USE_64_BIT_PTR_DEFINES`
- Updated condition to positive test for `#ifndef VK_USE_64_BIT_PTR_DEFINES` in `completeMacro`
* Added `#include <string.h>` to resolve `strnlen` missing in the module
* Use only `std.compat`
* FIx after rebase
Correctly handle a zero max image count in VkSurfaceCapabilitiesKHR
which indicates no upper limit to the number of images in a swapchain.
Fixes validation error VUID-VkSwapchainCreateInfoKHR-minImageCount-01271
* 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.
* Bug fixes for C++20 module
- Removed nested `export` keyword for `vk::raii` namespace in C++ module file
- Fixed macro in `vulkan.cppm` for `vk::DynamicLoader`: changed from `VULKAN_HPP_DYNAMIC_LOADER_TOOL` to `VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL`
- Moved VulkanHppModule declaration before generator
- Fixed `CMakeLists.txt` for `Cpp20Modules` executable target
* Use `VULKAN_HPP_CONSTEXPR_INLINE` for constants in `vulkan.hpp`
- Added VULKAN_HPP_CONSTEXPR_INLINE macro definition
- Allow external linkage for these constants in C++17 and later
* feat: exported vk::raii types in vulkan.ixx, with a small test
* feat: *almost* complete vulkan.ixx; missing functions in vulkan_funcs.hpp and constexpr auto defines
* Exported free functions in `vulkan_funcs.hpp` in `vulkan.ixx`
* Completed vulkan.ixx
Exported all types, structs, functions; need to handle anonymous namespace and getDispatchLoaderStatic()
* Moved `vk::anon-namespace::throwResultException` to `vk::detail::throwResultException` to solve linking errors
* Made `vk::getDispatchLoaderStatic` not `static`
`static`in namespace/global scope has to do with internal/external linkage, and not lifetime
* Fixed debug assert fail in `generateCppModuleStructUsings`
* Removed references to `.cppm`
* Formatting and versioning changes
- CMake version handling simplified
- vulkan.ixx includes new structs from new versions
- vulkan.hpp and vulkan_raii.hpp reformatted with clang-format 14
* Removed extraneous includes
- std::optional -> std::string::empty
- std::filesystem was unused
* Fixed constexpr function and value generation
- 'c' prefix removed
- Constants casing fixed
- Types for constants fixed
- Constants assigned to macros
- Ordering of constants and consteval functions fixed
* Moved constexprs to `vulkan.hpp`
- Added corresponding `using` statements to `vulkan.ixx`
- Changed `consteval auto(auto)` functions into templated SFINAE `constexpr` functions
* Formatting, signposting, misc fixes
- Added newlines around macro guards
- Added signposting comments for relevant groups of `using`-statements in `vulkan.ixx`
- Guarded createInstanceUnique with macro guard
- Use m_handles.at("").commands for Funcs
* Changed module file extension to `.cppm`
- It follows the rest of the project convention; `ixx` looks really weird next to `.hpp` and `.cpp`
- CMake transparently handles any extension anyway
* Added `VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE` to `vulkan.cppm`
* Added format traits and extension inspections
- Straightforward, since everything is hard-coded
* Added documentation about Vulkan-Hpp C++ module
- Compiler requirements
- CMake compilation
- Command-line examples
* Added vulkan_hash.hpp
- No need for `using`, since all declarations are template specialisations of existing `std` objects
* Documentation and comment fixes
- Removed extraneous CMake version comments
- Documentation about default dynamic dispatcher with the module
- Comment updates in the source code
* Moved constexpr defines and using statements
- Moved to after resultUsings in both vulkan.hpp and vulkan.cppm
- Also split up constexprDefinesAndUsings
- Used const_cast for constexprDefines()
* Used std::string instead of std::stringstream
- Some changes also in previous commit
- Also removed overly-clever ranges algorithms
* Simplified protection generation
- Removed `generateNotProtection`
- Added optional `bool` parameter to `generateProtection` for `#if !defined( ... )`
* Simplified Cpp20Modules CMakeLists
- Made C++ standard and libraries into parameters
- Removed FindVulkan call; already done
* `constexpr` generation fixed
- Made all generating functions `const`
- Removed typos and extra comments
- Extracted out filtering functionality into separate functions
* Simplified defines partition generation
- Added `DefinesPartition` struct as a member variable
- Added non-const function to write to the above in `readTypeDefines`
- Removed previous implementation that made many copies
* Added `generateUsingsAndProtection` lambda to RAII name generation
* Moved around `partitionDefines` to make more sense
- called once at the end of the constructor
- edited comments
* Updated headers to 1.3.255
* Removed std::ranges and ranges view adaptors
- CI isn't passing with them
* Fixed constexpr functions for C++11 and C++14
- Removed `enable_if_t` and `is_integral_v`
- Changed `auto` return type into `uint32_t`
---------
Co-authored-by: Sharadh Rajaraman <r.sharadh@yahoo.com.sg>
* chore(CI): speed up CI by using ninja and parallel build
* chore(CI): align compiler for c and cxx
* fix(samples): add dependency to generator
* fix(cmake): get rid of file glob
* chore(CI): use clang on mac
glfw don't support gcc on mac
* fix(sample): add depencency on build_vulkan_hpp
* fix(cmake): make sure every target in tests and samples link to utils
Add tests for new ArrayProxy and ArrayProxyNoTemporaries constructors.
Also add more size assertions, to verify that ArrayProxy size is correct
after construction.