Commit Graph

63 Commits

Author SHA1 Message Date
asuessenbach
d86303c0e4 Introduce structure constructors using ArrayProxyNoTemporaries 2020-07-09 12:03:03 +02:00
asuessenbach
b06457a74b Simplified struct setter functions on a union. 2020-07-06 14:52:22 +02:00
asuessenbach
8ddea43942 Introduce helper class ArrayProxyNoTemporaries and structure setter functions using that.
Resolves #62!
2020-07-01 16:39:25 +02:00
asuessenbach
db58507063 Introduce VULKAN_HPP_NO_STRUCT_CONSTRUCTORS so support designated initializers.
You have to define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS to remove all the struct constructors from vulkan.hpp, so that you can use designated initializers on them.
Of course, makes only sense with C++20.
2020-06-24 11:28:43 +02:00
asuessenbach
f87c9330e7 Extend check against protect attribute for types that are required by multiple extensions. 2020-06-15 10:09:07 +02:00
asuessenbach
381494ed3f Update and adjustments to VK_VULKAN_HEADER 143 2020-06-15 08:03:17 +02:00
asuessenbach
8958396a0c Add support for "allowduplicate" attribute on chainable structures. 2020-05-25 09:36:20 +02:00
asuessenbach
cc6162991a Improve extension protection string handling. 2020-05-19 14:34:41 +02:00
asuessenbach
94888c9959 Correct handling of enum aliases 2020-04-30 11:30:17 +02:00
asuessenbach
c6f4dfb79b Correct default initializer for array of enums. 2020-04-29 11:45:10 +02:00
asuessenbach
89190683c8 Add checks on member sType of structs:
- only members named <sType> are supposed to have a <values> attribute
- no <values> attribute is allowed to occur more than once.
2020-04-29 09:04:21 +02:00
asuessenbach
c7c375eb98 Unify type traits handling of Handles, Structures, and IndexTypes. 2020-04-24 09:57:37 +02:00
asuessenbach
f5e59484a6 Introduce usage of clang-format to format vulkan.hpp and the other sources. 2020-04-23 10:55:02 +02:00
asuessenbach
5cb6084118 Adjust structure and union constructors and setter functions to correctly handle sType of a member of that structure/union. 2020-04-21 08:49:17 +02:00
asuessenbach
cc77b67bb8 Provide std::hash<vk::HandleType> to make handles hashable. 2020-04-06 10:41:42 +02:00
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
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
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
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
asuessenbach
f43626d8a1 Move aliased platform specific stuff out of the platform protection. 2020-03-02 14:09:47 +01:00
Andreas Süßenbach
f9d90dfd1c Some more checks 2020-02-25 10:29:13 +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
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
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
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
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
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
e2268eadb6 Introduce usage of constexpr for constructors of structs. (#385) 2019-09-23 15:57:48 +02:00
Andreas Süßenbach
a12c3807de cleanup on stringstream usage. (#376) 2019-08-27 09:02: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
712acf08f8 Filter out multi-bit values for to_string function on FlagBits. (#355) 2019-07-03 13:53:44 +02:00
nyronium
96299b3a1f Rename variables named 'requires' which is a keyword in c++20 (#336) 2019-06-11 10:12:37 +02:00
Frank Richter
0e76bc68e3 Support compilation with VK_NO_PROTOTYPES defined (#328)
* Add checks for VK_NO_PROTOTYPES so the can still compile if that is defined
2019-05-21 14:57:52 +02:00
Andreas Süßenbach
bcc02a1cb0 Cleanup on platform protection handling. (#312) 2019-04-01 09:30:06 +02:00
Andreas Süßenbach
7905145361 Get the to_string function of an enum inside of the corresponding platform protection (#311) 2019-03-21 11:53:30 +01:00
Andreas Süßenbach
fe614bd960 Add platform specific protection for enum classes listed in a platform-protected extension. (#310) 2019-03-20 17:39:51 +01:00
Andreas Süßenbach
3f20016ba9 Make the default value on "other" types dynamic by reading those types from <type> "requires" in vk.xml. (#306) 2019-03-19 15:34:00 +01:00
Andreas Süßenbach
48ceca69f3 Improve alias handling of enums and structs: (#305)
- Extend and unify alias handling on feature and extension enums
- Extend aliases of enums handling to accept two levels of aliasing
- Extend aliases of structures to allow mulitple aliases of the same structure
- Simplify forward declarations to just declare all structures and aliases
2019-03-18 20:48:10 +01:00
Andreas Süßenbach
efe676ab66 Handle aliased enum values with different extension tag as their base value. (#290)
+ update Vulkan-Docs to version 1.1.100.
2019-02-13 12:18:49 +01:00
Andreas Süßenbach
e3f096bc7c Cleanup on reading structure members and command arguments. (#282) 2019-01-14 10:09:19 +01:00
Andreas Süßenbach
a147b07737 Cleanup code generation with focus on removing the need to sort all dependencies before writing them. 2019-01-09 11:55:11 +01:00
Andreas Süßenbach
e765318a3d Correct usage of platform/protect information. (#276)
+ update to version 1.1.94
2018-12-03 14:33:37 +01:00