Compare commits
5 Commits
93561eefa4
...
52b17c07a4
| Author | SHA1 | Date |
|---|---|---|
|
|
52b17c07a4 | |
|
|
6f989179a8 | |
|
|
86a1a2dbcf | |
|
|
a191c11a6d | |
|
|
2d4f3cb6a3 |
|
|
@ -341,12 +341,10 @@ if( VULKAN_HPP_BUILD_CXX_MODULE )
|
|||
# create targets providing VulkanHpp and VulkanVideoHpp as C++ named modules
|
||||
vulkan_hpp__setup_vulkan_module( NAME VulkanHppModule
|
||||
FILE_SET_NAME vulkan_module_file
|
||||
FILE_SET vulkan/vulkan.cppm
|
||||
FILE_SET
|
||||
vulkan/vulkan.cppm
|
||||
vulkan/vulkan_video.cppm
|
||||
ALIAS Vulkan::HppModule ) # TODO: respect VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP
|
||||
vulkan_hpp__setup_vulkan_module( NAME VulkanVideoHppModule
|
||||
FILE_SET_NAME vulkan_video_module_file
|
||||
FILE_SET vulkan/vulkan_video.cppm
|
||||
ALIAS Vulkan::VideoHppModule )
|
||||
endif()
|
||||
|
||||
function( vulkan_hpp__setup_platform )
|
||||
|
|
|
|||
|
|
@ -797,7 +797,7 @@ Some functions might provide information that depends on the vulkan version. As
|
|||
|
||||
#### Overview <a id='named_module_overview'>
|
||||
|
||||
Vulkan-Hpp provides a [C++ named module](https://en.cppreference.com/w/cpp/language/modules), `vulkan_hpp` in [`vulkan.cppm`](vulkan/vulkan.cppm).
|
||||
Vulkan-Hpp provides a [C++ named module](https://en.cppreference.com/w/cpp/language/modules), `vulkan` in [`vulkan.cppm`](vulkan/vulkan.cppm).
|
||||
C++ modules are intended to supersede header files. Modules have potential to drastically improve compilation times for large projects, as declarations and definitions may be easily shared across translation units without repeatedly parsing headers.
|
||||
Vulkan-Hpp has some extremely long headers (e.g. [`vulkan_structs.hpp`](vulkan/vulkan_structs.hpp)), and the C++ module is likely to shorten compile times for projects currently using it.
|
||||
|
||||
|
|
@ -882,7 +882,7 @@ target_link_libraries( VulkanHppModule PUBLIC Vulkan::Headers )
|
|||
Finally, supply the macro `VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE` exactly once in your source code, just as in the non-module case. In order to have that macro available, include [`vulkan_hpp_macros.hpp`](vulkan/vulkan_hpp_macros.hpp), a lightweight header providing all Vulkan-Hpp related macros and defines. And as explained above, you need to initialize that dispatcher in two or three steps:
|
||||
|
||||
```cpp
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
|
||||
#include <vulkan/vulkan_hpp_macros.hpp>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,9 @@ module;
|
|||
|
||||
#if !defined( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
# define VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING \
|
||||
"The Vulkan-Hpp C++ named module is experimental. " \
|
||||
"It is subject to change without prior notice.\n" \
|
||||
"To silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n\n" \
|
||||
"For feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
"\n\tThe Vulkan-Hpp C++ named module is experimental. It is subject to change without prior notice.\n" \
|
||||
"\tTo silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n" \
|
||||
"\tFor feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
|
||||
VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
#endif
|
||||
|
|
@ -23,7 +22,8 @@ module;
|
|||
#include <vulkan/${api}_raii.hpp>
|
||||
#include <vulkan/${api}_shared.hpp>
|
||||
|
||||
export module ${api}_hpp;
|
||||
export module ${api};
|
||||
export import :video;
|
||||
export import std;
|
||||
|
||||
export namespace VULKAN_HPP_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -1,20 +1,25 @@
|
|||
${copyrightMessage}
|
||||
|
||||
// Note: This module is still in an experimental state.
|
||||
// Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues.
|
||||
|
||||
module;
|
||||
|
||||
#define VULKAN_HPP_CXX_MODULE 1
|
||||
|
||||
#include <vulkan/vulkan_hpp_macros.hpp>
|
||||
|
||||
#if !defined( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
# define VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING \
|
||||
"\n\tThe Vulkan-Hpp C++ named module is experimental. It is subject to change without prior notice.\n" \
|
||||
"\tTo silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n" \
|
||||
"\tFor feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
|
||||
VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
#endif
|
||||
|
||||
#include <vulkan/vulkan_video.hpp>
|
||||
|
||||
export module vulkan_video_hpp;
|
||||
export module vulkan:video;
|
||||
|
||||
export namespace VULKAN_HPP_NAMESPACE
|
||||
{
|
||||
namespace VULKAN_HPP_VIDEO_NAMESPACE
|
||||
export namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE
|
||||
{
|
||||
${usings}
|
||||
} // namespace VULKAN_HPP_VIDEO_NAMESPACE
|
||||
} // namespace VULKAN_HPP_NAMESPACE
|
||||
} // namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
# ifdef VULKAN_HPP_SUPPORT_SPAN
|
||||
# include <span>
|
||||
# endif
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
# include <vulkan/vulkan_hpp_macros.hpp>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
#include <string> // std::string
|
||||
#include <iostream> // std::cout
|
||||
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
|
||||
static std::string AppName = "Cpp20Modules";
|
||||
static std::string EngineName = "Vulkan.cppm";
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
// Compile test on using c++20 modules
|
||||
|
||||
import std;
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
|
||||
#if defined( _MSC_VER )
|
||||
# pragma warning( disable : 4189 ) // local variable is initialized but not referenced
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
# include <vulkan/vulkan.h>
|
||||
# include <vulkan/vulkan_hpp_macros.hpp>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
# include <vulkan/vulkan_raii.hpp>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#include <vector>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
# include <vulkan/vulkan_hpp_macros.hpp>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#include <cassert>
|
||||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan_extension_inspection.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
# include <compare> // necessary due to MSVC "design": https://developercommunity.visualstudio.com/t/Template-exports-requiring-importing-of-/1425979#T-N1435887
|
||||
# include <vulkan/vulkan_core.h>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#include <map>
|
||||
#include <set>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan_format_traits.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
#include <vulkan/vulkan.h>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan_raii.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <cassert>
|
||||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
#include <unordered_set>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
#include <vulkan/vulkan_hpp_macros.hpp>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan_hash.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#define VULKAN_HPP_NO_DEFAULT_DISPATCHER
|
||||
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include <vulkan/vulkan.hpp>
|
||||
# include <vulkan/vulkan_raii.hpp>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#include <cstdint>
|
||||
#include <algorithm>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan_raii.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
# include <vulkan/vulkan_hpp_macros.hpp>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
#include <cassert>
|
||||
#include <iostream>
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#ifdef VULKAN_HPP_USE_CXX_MODULE
|
||||
#include <vulkan/vulkan.h>
|
||||
import vulkan_hpp;
|
||||
import vulkan;
|
||||
#else
|
||||
# include "vulkan/vulkan.hpp"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -13,10 +13,9 @@ module;
|
|||
|
||||
#if !defined( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
# define VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING \
|
||||
"The Vulkan-Hpp C++ named module is experimental. " \
|
||||
"It is subject to change without prior notice.\n" \
|
||||
"To silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n\n" \
|
||||
"For feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
"\n\tThe Vulkan-Hpp C++ named module is experimental. It is subject to change without prior notice.\n" \
|
||||
"\tTo silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n" \
|
||||
"\tFor feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
|
||||
VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
#endif
|
||||
|
|
@ -28,7 +27,8 @@ VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
|||
#include <vulkan/vulkan_raii.hpp>
|
||||
#include <vulkan/vulkan_shared.hpp>
|
||||
|
||||
export module vulkan_hpp;
|
||||
export module vulkan;
|
||||
export import :video;
|
||||
export import std;
|
||||
|
||||
export namespace VULKAN_HPP_NAMESPACE
|
||||
|
|
@ -9388,8 +9388,7 @@ export namespace std
|
|||
#endif
|
||||
} // namespace std
|
||||
|
||||
export
|
||||
{
|
||||
export {
|
||||
// This VkFlags type is used as part of a bitfield in some structures.
|
||||
// As it can't be mimicked by vk-data types, we need to export just that.
|
||||
using ::VkGeometryInstanceFlagsKHR;
|
||||
|
|
|
|||
|
|
@ -4,19 +4,26 @@
|
|||
|
||||
// This header is generated from the Khronos Vulkan XML API Registry.
|
||||
|
||||
// Note: This module is still in an experimental state.
|
||||
// Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues.
|
||||
|
||||
module;
|
||||
|
||||
#define VULKAN_HPP_CXX_MODULE 1
|
||||
|
||||
#include <vulkan/vulkan_hpp_macros.hpp>
|
||||
|
||||
#if !defined( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
# define VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING \
|
||||
"\n\tThe Vulkan-Hpp C++ named module is experimental. It is subject to change without prior notice.\n" \
|
||||
"\tTo silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n" \
|
||||
"\tFor feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
|
||||
|
||||
VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING )
|
||||
#endif
|
||||
|
||||
#include <vulkan/vulkan_video.hpp>
|
||||
|
||||
export module vulkan_video_hpp;
|
||||
export module vulkan:video;
|
||||
|
||||
export namespace VULKAN_HPP_NAMESPACE
|
||||
{
|
||||
namespace VULKAN_HPP_VIDEO_NAMESPACE
|
||||
export namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE
|
||||
{
|
||||
|
||||
//=================
|
||||
|
|
@ -314,5 +321,4 @@ export namespace VULKAN_HPP_NAMESPACE
|
|||
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags;
|
||||
#endif
|
||||
|
||||
} // namespace VULKAN_HPP_VIDEO_NAMESPACE
|
||||
} // namespace VULKAN_HPP_NAMESPACE
|
||||
} // namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE
|
||||
|
|
|
|||
Loading…
Reference in New Issue