Commit Graph

283 Commits

Author SHA1 Message Date
asuessenbach
732274919b Correct actual function called by aliased member functions 2020-03-25 17:13:03 +01:00
asuessenbach
0ea8a527ba Introduce ArrayWrapper?D, replacing ConstExpression?DArrayCopy
+ no explicit copy constructor of structs needed any more
+ removed assignment operator of structs that don't hold a const sType member (for those, we still need the assignment operator!)
+ simplified operator==() of structs (pre C++20)
+ resolved some 32bit warnings
2020-03-25 12:35:35 +01:00
asuessenbach
8c6ac21d27 Relax criterion on determining enhanced return type. 2020-03-24 09:43:50 +01:00
asuessenbach
bebb3a86bd Update to VK_HEADER_VERSION 135 2020-03-19 09:13:41 +01:00
asuessenbach
7826e58909 Add missing handling of unions in readExtensionRequireType. 2020-03-13 08:54:54 +01:00
Andreas Süßenbach
7d5c399cd7
Merge pull request #533 from asuessenbach/disabled
Improve handling of disabled extensions.
2020-03-12 10:18:44 +01:00
asuessenbach
402816919b Add a check on having a valid value for struct members sType. 2020-03-10 16:19:37 +01:00
asuessenbach
8be8282458 Add support of array-sized function arguments 2020-03-10 15:40:05 +01:00
asuessenbach
41cece140e Yet another correction on braces for arrays of enums. 2020-03-10 14:26:36 +01:00
asuessenbach
d5dba659b4 Correct braces around array of enum initializers. 2020-03-10 12:46:45 +01:00
asuessenbach
434c0326f4 Support arrays of enums in structures. 2020-03-10 11:47:09 +01:00
asuessenbach
594acb2ecd Improve handling of disabled extensions.
(Partly) resolves #531
2020-03-10 10:06:33 +01:00
asuessenbach
87cecae683 Update of vk.xml to version 134; resolve warnings
Resolves #535
2020-03-10 10:00:06 +01:00
asuessenbach
cd554ce9e0 Introduce support of VkFlags64
+ add support of structExtends via alias'ed structures
+ add support of alias'ed commands via already alias'ed commands
2020-03-04 15:29:06 +01:00
asuessenbach
1b22ac9658 Introduce spaceship operator<=> on Flags with C++20, replacing all the relational operators
+ replace variables/struct members named "requires" with "requirements"
2020-03-03 14:02:32 +01:00
Mike Barriault
4f56a424c6 Add const versions of StructureChain::get 2020-03-02 21:32:06 +00:00
asuessenbach
f43626d8a1 Move aliased platform specific stuff out of the platform protection. 2020-03-02 14:09:47 +01:00
asuessenbach
862c0abdc7 Correct filtering of struct elements. 2020-02-27 09:50:28 +01:00
asuessenbach
0d65f6a142 Reduced exception on encountering an unknown element to a warning. 2020-02-27 08:58:57 +01:00
asuessenbach
5d124b6d4a Add "enabled" as accepted value for attribute "supported" in extension element 2020-02-26 08:43:29 +01:00
asuessenbach
28d6e3e665 Extend check for attributes "deprecatedby" and "obsoletedby" to include features as well 2020-02-25 13:53:27 +01:00
asuessenbach
947583a1e5 Replace explicit template parameter MaskType for Flags types by std::underlying_type<BitType>::type and specify the underlying type for the FlagBits types
Resolves #507
2020-02-25 13:36:05 +01:00
asuessenbach
cbff9067dc Define VULKAN_HPP_NO_SMART_HANDLE if VULKAN_HPP_DISABLE_ENHANCED_MODE is defined.
Resolves #509.
2020-02-25 10:30:41 +01:00
Andreas Süßenbach
f9d90dfd1c Some more checks 2020-02-25 10:29:13 +01:00
asuessenbach
241e70e9cd Correct ConstExpression2DArrayCopy
+ introduce new test ArrayCopy
2020-02-24 12:05:49 +01:00
Andreas Süßenbach
8dda61900d
Merge pull request #518 from jackoalan/dynamic-loader-move-assign
Use std::swap for DynamicLibrary move assign
2020-02-24 10:19:27 +01:00
asuessenbach
c05772e82d Correct const usage in ConstExpression1DArrayCopy 2020-02-23 00:20:45 +01:00
Jack Andersen
44b1ea9202 Use std::swap for DynamicLibrary move assign 2020-02-21 20:08:03 -10:00
asuessenbach
dc954e0f6d Restructure ConstExpressionNDArrayCopy classes 2020-02-21 09:55:25 +01:00
asuessenbach
0af9093389 Extend ConstExpression2DArrayCopy to support const T src[N][M]. 2020-02-19 18:50:49 +01:00
Dan Sinclair
0fe05fa95d Update tinyxml2 2020-02-18 09:28:50 -05:00
Jack Andersen
b4f482572f Add move semantics to DynamicLoader 2020-02-17 11:52:57 -10:00
Andreas Süßenbach
b08af45046 Resolve warnings from gcc.
Resolves #505
2020-02-13 10:27:30 +01:00
Andreas Süßenbach
f1d3380e31 Add assignment operator for all structs
Resolves #505
2020-02-13 10:27:30 +01:00
asuessenbach
7feffc1b9d Add/Reshape copy constructors for structs and unions.
Allows usage of constexpr on those constructors.

Resolves #493
2020-02-06 11:15:57 +01:00
Andreas Süßenbach
cf39cd4f0c
Introduce helper function check() to ease throwing on spec error detection. (#502)
* Introduce helper function check() to ease throwing on spec error detection.

* Use some more checks

* Some more checks
2020-02-04 10:35:33 +01:00
Andreas Süßenbach
4d53dac22b
Replace usage of std::forward_as_tuple by std::tie. (#501) 2020-02-03 15:55:06 +01:00
Andreas Süßenbach
8c9e881dfe
Change init functions of DispatchLoaderDynamic to use a DynamicLoader specified by a template argument. (#503) 2020-02-03 15:52:53 +01:00
Anatoliy V. Tomilov
7efe3d096b
use VULKAN_HPP_ASSERT instead of raw assert in generated code (#498)
* use VULKAN_HPP_ASSERT instead of raw assert in generated code

* update generated vulkan.hpp to match generator changes
2020-01-30 09:57:51 +01:00
Andreas Süßenbach
bca5adc12d
Change return of StructureChain::get() from tuple of values to tuple of references (#495)
Resolves #494
2020-01-29 10:00:41 +01:00
Andreas Süßenbach
f1668a6e28 Remove template parameter defaultValue from Flags. (#492)
Flags always default to just no FlagBits set.
2020-01-21 12:01:35 +01:00
Andreas Süßenbach
33b244859b Add specific initialization of Flags and FlagBits. (#489)
Resolves #488.
2020-01-16 12:12:31 +01:00
Alex Hirsch
bb5b19deda Fix regression in ObjectDestroy default argument (#485) 2020-01-16 08:50:50 +01:00
Andreas Süßenbach
7e81c7bddf Improve construction of success check and return type of enhanced functions returning a vector of UniqueHandles (#484) 2020-01-15 16:54:55 +01:00
Andreas Süßenbach
129f82dd90 Extend check to determine the returnParameterIndex. (#482) 2020-01-14 16:06:50 +01:00
Andreas Süßenbach
a75cf874c7 Filter aliases of enum values that originally belong to aliases of the enum class. (#483) 2020-01-14 16:05:05 +01:00
Andreas Süßenbach
e49f02013a Mark every non-enhanced function with VULKAN_HPP_NOEXCEPT. (#481) 2020-01-14 10:37:54 +01:00
Andreas Süßenbach
65450515ee Added a couple of features: (#480)
+ support for 2D arrays
+ support for bitfield members in a structure (slightly restricted: no default member initializers and for any vk::*FlagBits member Vk*FlagBits would be used)
+ aliases to enums are listed by using declarations
+ for aliases to handle types, an aliased Unique handle type is added by a using declaration
+ a check in determining an enhanced return type is extended
2020-01-13 15:00:59 +01:00
Andreas Süßenbach
979af1b46e Added test on existence of ObjectType enum value corresponding to handle type in extensions. (#477) 2020-01-10 10:18:55 +01:00
Andreas Süßenbach
8d62969b4d Fix arraySize for array-valued return parameter. (#476) 2020-01-09 16:21:41 +01:00
Andreas Süßenbach
1911d18790 Completed set of operators on Flags (#475) 2020-01-09 09:44:41 +01:00
Andreas Süßenbach
55517484be Add optional attribute "specialuse", currently ignored. (#474) 2020-01-08 14:29:26 +01:00
Markus Tavenrath
d5f58e07dd Add error message when referencing undefined type requirements (#473) 2020-01-07 16:50:46 +01:00
Andreas Süßenbach
4ee2d61ef6 Improve operator==() of structs (#472)
When a struct holds a fixed size array of stuff, and the member variable right before that array is the count (determined by its specific name) for that array, we now only compare that number of stuff.

Resolves #456
2020-01-07 16:28:50 +01:00
Andreas Süßenbach
0b3af1ee76 Add is_error_code_enum only if VULKAN_HPP_NO_EXCEPTIONS is not defined. (#471) 2020-01-06 15:55:31 +01:00
Markus Tavenrath
499d4bb33d
Bring back default arguments to ObjectDestroy class. Update header to Vulkan 1.130 (#468)
Fix issue #467
2020-01-03 10:59:59 +01:00
Andreas Süßenbach
021c7499a0 Cleanup on usage of static vs. dynamic loading (#462) 2019-12-23 08:45:40 +01:00
Andreas Süßenbach
0b01a8a74c
Introduce default initializers for member variables, simplify default values for constructor arguments (#455) 2019-12-12 11:40:21 +01:00
Andreas Süßenbach
3f82338d9f
Fix ambiguous constructor of ObjectDestroy with vk::NoParent. (#451)
Resolves #450
2019-12-04 08:34:58 +01:00
Andreas Süßenbach
2a05d74c23
Change every occurance of vk:: to VULKAN_HPP_NAMESPACE:: (#448)
Resolves #447
2019-12-02 10:06:44 +01:00
Andreas Süßenbach
07edfc45d6 Introduce default constructors for UniqueHandle, ObjectDestroy, and ObjectFree (#446) 2019-11-28 16:01:22 +01:00
Andreas Süßenbach
f2058303cb Introduce functions vk::StructureChain::unlink<ClassType>() and vk::StructureChain::relink<ClassType>(). (#441)
Resolves #439.
2019-11-28 15:58:15 +01:00
Andreas Süßenbach
e40eb90980 Remove not needed operator==() and operator!=() on *FlagBits (#442)
Resolves #436
2019-11-27 11:41:21 +01:00
Andreas Süßenbach
d2a116b57f Correct operator=() by using offsetof instead of sizeof to determine size of memory to copy. (#437) 2019-11-19 17:44:16 +01:00
Andreas Süßenbach
e850963599 Extend functions returning a std::vector<vk::StructureChain> to use an additional local vector for getting the information, and then copy the heads of the StructureChains over to the return vector (#432)
Fixes #400
2019-11-13 10:04:50 +01:00
Markus Tavenrath
661d2a9a7c Include windows.h on windows platforms in case the DynamicLoader is enabled. (#431) 2019-11-11 17:23:35 +01:00
Andreas Süßenbach
581b7cb227 Add [[noreturn]] and remove VULKAN_HPP_INLINE to/from function throwResultException (#430)
Resolves issue #406
2019-11-07 15:42:10 +01:00
Andreas Süßenbach
3fc2ea47fd Replace namespace layout stuff by a simple const for the sType member of the structures (#428)
+ reshape of constructors and assignment operators of structs.
2019-11-07 08:22:47 +01:00
Andreas Süßenbach
cea5d7fae3 Add unique-versions of "Register"-functions (currently just registerEventEXTUnique and registerDisplayEventEXTUnique) (#421) 2019-11-06 14:45:13 +01:00
Warpten
5512f6df92 Implement support for unicode in Windows projects using vk::DynamicLoader. (#422) 2019-11-06 14:44:33 +01:00
Markus Tavenrath
96b0bfdf0d Fix DynamicLoader on 32-bit platforms (#427) 2019-11-06 13:52:41 +01:00
Andreas Süßenbach
9f7b06cbd1 Remove VULKAN_HPP_NOEXCEPT from functions that throw a LogicError. (#416) 2019-10-30 10:10:32 +01:00
mocabe
68b11f1e90 Disable CTAD on ArrayProxy's constructors (#405)
* Disable CTAD on ArrayProxy's reference constructor

* Disable CTAD on ArrayProxy's initializer_list ctor
2019-10-29 16:00:03 +01:00
Markus Tavenrath
178bf4ded7 Fix typo when calling operator==(enum, enum) (#415) 2019-10-28 15:27:48 +01:00
Markus Tavenrath
3976a4cc75
Fix msvc 2015 issue with operator== being ambigious and incorrect constexpr in ResultValue (#412) 2019-10-25 13:21:49 +02:00
nyronium
6da60c59dc Added noexcept on all correct locations (RAII, internal classes, free functions, trivial cases) (#338)
This includes complex cases such as generated functions (those not returning VkResult and nothing
with an allocator like std::vector), all internal classes (Flags),
all functions not returning VkResult, as well as all trivial cases.
2019-10-23 10:52:29 +02:00
jeremyk-lunarg
65af859e4d build: Add MacOS Specific Code to DynamicLoader (#409)
Added MacOS specific code to the DynamicLoader class.
vkCubepp in KhronosGroup/Vulkan-Tools requires this change to
build on MacOS.
2019-10-17 09:59:35 +02:00
Andreas Süßenbach
f379a11a69 Make logical operators on flags constexpr. (#407) 2019-10-10 07:29:59 -04:00
Andreas Süßenbach
89c9c91efd Add define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL to allow hiding the helper class vk::DynamicLoader. (#396) 2019-09-30 21:14:22 -04:00
Andreas Süßenbach
cdfb290dc1 Make ConstExpressionArrayCopy::copy() a constexpr with C++14 earliest. (#394) 2019-09-27 08:59:59 +02:00
Andreas Süßenbach
becef43315 Change (most of) the samples to use the DispatchLoaderDynamic by default. (#392) 2019-09-26 09:55:15 +02:00
Andreas Süßenbach
5ceb4d2801 Add missing extern declaration of defaultDispatchLoaderDynamic (#391) 2019-09-25 15:01:29 +02:00
Andreas Süßenbach
a5d14b5c16 Correct indexing in ConstExpressionArrayCopy. (#388) 2019-09-25 12:05:31 +02:00
Markus Tavenrath
e26cb8113a Add support for a full volk replacement by supporting a global DispatchLoaderDynamic. The global dynamic dispatcher will be available if either the define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC is set to 1 or if VK_NO_PROTOTYPES is defined. In those cases it is required to add VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE; to any compilation unit of the project to allocate storage for the dispatcher. (#390) 2019-09-25 11:59:39 +02:00
Markus Tavenrath
48d540a23d Add vk::DynamicLoader and simplify usage of vk::DispatchLoaderDynamic. Update Vulkan-Headers to 1.1.123 (#387) 2019-09-24 12:12:49 +02:00
Andreas Süßenbach
e2268eadb6 Introduce usage of constexpr for constructors of structs. (#385) 2019-09-23 15:57:48 +02:00
Andreas Süßenbach
a9a4860591 Resolve instantiation issue with structures that are flagged as returnedonly (#382)
- make layout-structure default constructor an empty function
- introduce default constructor for the corresponding (non-layout) structure, delegating to the layout-structure's constructor
- introduce copy- and assignment constructors from the corresponding vulkan-structure, delegating to the copy- and assignment constructor from the layout-structure
2019-09-18 08:47:17 +02:00
Andreas Süßenbach
a12c3807de cleanup on stringstream usage. (#376) 2019-08-27 09:02:49 +02:00
Andreas Süßenbach
6f80427c41 Move check for redundant aliased enum values from read to write. (#375) 2019-08-19 15:40:22 +02:00
Andreas Süßenbach
4ac6dc4760 Fix wrong naming of complex union member types. (#371) 2019-08-15 09:50:26 +02:00
Jason Ekstrand
c5e8f86a58 Only emit union constructors and setters if !returnedonly (#369) 2019-08-14 11:57:10 +02:00
Markus Tavenrath
b4e27f9be0
Add support for 1.1.119 (#370) 2019-08-12 09:55:23 +02:00
orbea
eaf09ee61e Fix typo. (#365)
Thanks a lot for spotting this issue!
2019-07-25 14:26:03 +02:00
Yiwei Zhang
d5d4f3457b Fix the header generation for complex disabled extensions (#363) 2019-07-25 09:44:49 +02:00
Andreas Süßenbach
b01f3c0bb5 Introduce namespace layout to have structures with private member sType that still are still standard_layout conformant. (#360) 2019-07-23 09:28:14 +02:00
Andreas Süßenbach
b0bfcfdab5 Add a static const(expr) member vk::ObjectType to the vk object classes; add a type_trait cpp_type<> to get the cpp-type from a vk::ObjectType. (#356) 2019-07-09 09:24:14 +02:00
Andreas Süßenbach
712acf08f8 Filter out multi-bit values for to_string function on FlagBits. (#355) 2019-07-03 13:53:44 +02:00
Andreas Süßenbach
f91fc93fc5 Add CType to handle wrapper classes. (#354) 2019-07-03 13:49:40 +02:00
Andreas Süßenbach
89a56017a8 replace memcpy in generated copy and assignment operators of VkStructures by reinterpreted assignments. (#348)
Fixes #342
2019-06-25 09:43:54 +02:00
past-due
ed11cd8eb8 Add explicit casts to DispatchLoaderDynamic::init(vk::Instance const&, vk::Device const&) (#344) 2019-06-24 09:14:17 +02:00