Commit Graph

405 Commits

Author SHA1 Message Date
Andreas Süßenbach f4b679c7e7
First step in generalizing handling of attribute "altLen". (#1528) 2023-03-09 10:04:33 +01:00
Andreas Süßenbach ae07aa7254
First version to support both, "vulkan" and "vulkansc". (#1524)
The files set generated is controlled by command line argument -api [vulkan|vulkansc]
2023-03-07 08:23:14 +01:00
Andreas Süßenbach 31554d2aca
Simplify enum value alias handling. (#1523)
* Simplify enum value handling.

* Simplified enum value generation
2023-03-06 08:37:40 +01:00
Andreas Süßenbach 81633480b9
Simplified enum value handling (#1522) 2023-03-02 22:14:37 +01:00
Andreas Süßenbach 9e66a8886a
Refactor reading procedures (#1521) 2023-03-01 10:17:02 +01:00
Andreas Süßenbach 2207dc92c6
Corrected handling of attribute "depends" of <require> sections on extending enums. (#1517) 2023-02-22 16:20:44 +01:00
Andreas Süßenbach 71acf3515b
Change requiredIn in TypeData from std::string to std::set<std::string> (#1514)
+ some member data renaming
2023-02-20 20:01:34 +01:00
Andreas Süßenbach 00eee2ef0f
Change referencedIn in CommandData from std::string to std::set<std::string> (#1512) 2023-02-20 15:58:14 +01:00
Andreas Süßenbach a3cd63a4e2
Add handling of attribute "deprecated", extend handling of attribute "api" (#1506) 2023-02-16 13:12:55 +01:00
Andreas Süßenbach 1e95278b04
Renamed member functions and variables from "skipped" to "removed". (#1505) 2023-02-16 08:24:33 +01:00
Andreas Süßenbach ab08f20c01
Sort handle classes by feature and extension. (#1500) 2023-02-08 17:21:03 +01:00
Andreas Süßenbach e651117495
Unify detection logic for raii- and non-raii-command-generation (#1499) 2023-02-02 14:09:45 +01:00
Andreas Süßenbach d796a40abb
Add support for filtering out vulkansc stuff. (#1496) 2023-01-26 17:12:29 +01:00
Andreas Süßenbach 8179bd05bd
Add support for a new class of commands. (#1481) 2023-01-20 20:41:26 +01:00
Andreas Süßenbach 5e8166e284
Handle potential shadowing of function parameter name "objectType" with class member. (#1476) 2023-01-09 11:32:23 +01:00
asuessenbach 561354a79b Unify command set handling. 2022-11-29 13:38:36 +01:00
asuessenbach 1365fa3c27 Simplyfied some generator functions by combining a couple of bool arguments into a Flags object. 2022-11-28 16:53:24 +01:00
asuessenbach ad5f67d330 Add support of more complex logic of attribute <depends> 2022-11-23 17:42:23 +01:00
asuessenbach 7b5fc43e10 Add support for attribute "depends". 2022-11-09 16:25:43 +01:00
asuessenbach 2382684a69 Move explicitly defaulted copy assignment operators of structs into !defined(VULKAN_HPP_NO_STRUCT_CONSTRUCTORS) section
To explicitly default the copy assignment operator is only needed, if there are other constructors. Otherwise, some compilers warn about it.
2022-10-26 08:56:25 +02:00
asuessenbach d5ad2e1883 Introduce function release() to all vk::raii::HandleTypes. 2022-10-25 12:11:29 +02:00
asuessenbach 1ab5fa6550 Support structs holding arrays of data, where the data size is given by a pointer-type.
In that case, no improved constructor and no improved setters are generated.

Plus some minor cleanup.
2022-10-24 10:39:19 +02:00
asuessenbach 4bf02b2588 Reorganized generating bitmasks in vulkan_enums.hpp. 2022-10-17 16:10:36 +02:00
asuessenbach a49fd51629 Minor cleanup on bitmask generation. 2022-10-05 16:58:40 +02:00
asuessenbach a55e3eb2a0 Cleanup on protection handling
+ some other minor cleanup
2022-10-05 09:28:37 +02:00
asuessenbach 1173c9ab77 Allow union attribute "selection" to have multiple comma-separted values. 2022-09-27 08:50:36 +02:00
asuessenbach 6fe966c6d9 Fix inconsistency with return type of vk::raii::SwapchainKHR::getImages()
+ some minor cleanup
2022-09-21 10:08:07 +02:00
asuessenbach 34725b3192 Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute. 2022-09-12 16:53:44 +02:00
asuessenbach 5ede04aa9d Add support for functions returning more than one success code and getting two values. 2022-08-30 10:47:43 +02:00
asuessenbach e8bf9bed9a Move all the static_assertions from vulkan_handles.hpp and vulkan_structs.hpp into the new header vulkan_static_assertions.hpp 2022-08-03 11:53:57 +02:00
Andreas Süßenbach a57b04a569
Merge pull request #1374 from asuessenbach/refactor
Refactor top-level file generation function.
2022-08-02 12:07:23 +02:00
asuessenbach a8a2c5f910 Refactor top-level file generation function. 2022-08-02 10:00:16 +02:00
asuessenbach 95507d1e7c Removed some dead code. 2022-08-02 08:18:26 +02:00
Andreas Süßenbach f50243e683
Merge pull request #1372 from asuessenbach/refactor
Refactor top-level function to generate vulkan.hpp
2022-08-01 17:40:22 +02:00
asuessenbach 893d6847bb Refactor top-level function to generate vulkan.hpp 2022-08-01 16:40:15 +02:00
asuessenbach cb4a573b42 Combine two types of commands into one generation function 2022-08-01 14:53:06 +02:00
asuessenbach e8179c8f49 Combine two types of commands into one generation function 2022-08-01 11:32:05 +02:00
asuessenbach 3aae157e5b Move the vk::to_string functions into a separate header vulkan_to_string.hpp. 2022-07-26 11:19:42 +02:00
asuessenbach b81fb59ca6 Remove some dead code. 2022-07-18 10:28:20 +02:00
asuessenbach 248e6eeef3 Combine two types of commands into one generation function 2022-07-13 08:32:02 +02:00
asuessenbach bc6d481a5b Remove some dead code. 2022-07-11 13:54:33 +02:00
asuessenbach 49a2fc679a Add support for comma-separated list of names for attribute "extension" of element <require> in element <extension>. 2022-07-04 18:02:22 +02:00
Andreas Süßenbach 86cc8f2ed1
Merge pull request #1345 from asuessenbach/attributes
Add support for new attribute "validstructs"; ignore new possible values for attribute "limittype".
2022-07-04 16:08:42 +02:00
asuessenbach a7d2d85d63 Add support for new attribute "validstructs"; ignore new possible values for attribute "limittype". 2022-07-04 11:37:22 +02:00
asuessenbach 0d9ca30378 Removed some dead code. 2022-07-04 10:59:55 +02:00
asuessenbach 2ddd380a23 Combine two types of commands into one generation function 2022-06-29 08:13:42 +02:00
asuessenbach 39be44dc65 Combine two types of commands into one generation function 2022-06-28 13:33:36 +02:00
asuessenbach 429e610f7e Combine two types of commands into one generation function 2022-06-28 08:41:36 +02:00
asuessenbach 448efe9edb Combine two types of commands into one generation function 2022-06-27 10:03:03 +02:00
asuessenbach 5075c94b8a Combine two types of commands into one generation function 2022-06-23 11:42:03 +02:00
asuessenbach b7146538a5 Combine two types of commands into one generation function 2022-06-21 09:22:03 +02:00
asuessenbach 2c536b75b9 Combine two types of commands into one generation function 2022-06-20 12:26:30 +02:00
asuessenbach de7127a963 Combine two types of commands into one generation function 2022-06-15 11:57:25 +02:00
asuessenbach 66fc081783 Combine two types of commands into one generation function 2022-06-14 10:53:50 +02:00
asuessenbach 4630feb760 Combine two types of commands into one generation function 2022-06-14 09:08:56 +02:00
Andreas Süßenbach 15788c576c
Merge pull request #1322 from asuessenbach/spaceship
Remove spaceship operator for structures containing function pointers
2022-06-13 12:05:51 +02:00
asuessenbach 67f9357bb8 Remove spaceship operator for structures containing function pointers 2022-06-13 10:54:04 +02:00
asuessenbach a7d6e1be5d Combine two types of commands into one generation function 2022-06-08 16:39:15 +02:00
asuessenbach 484373a54a Combine two types of commands into one generation function 2022-06-08 08:53:11 +02:00
asuessenbach d691f5f0e8 Combine two types of commands into one generation function 2022-06-07 18:02:52 +02:00
asuessenbach 5c571c1b9a Combine two types of commands into one generation function 2022-05-25 20:21:21 +02:00
asuessenbach b35993287e Combine two types of commands into one generation function 2022-05-24 09:01:00 +02:00
asuessenbach d7a1a254d4 Combine two types of commands into one generation function 2022-05-23 10:31:40 +02:00
asuessenbach e3e124e5e2 Combine two types of commands into one generation function 2022-05-19 08:34:26 +02:00
asuessenbach 3f240ea665 Combine two types of commands into one generation function 2022-05-18 09:24:39 +02:00
asuessenbach 66c3c89d8e Combine two types of commands into one generation function 2022-05-17 10:35:57 +02:00
asuessenbach b3863a385b Combine two types of commands into one generation function 2022-05-12 09:02:27 +02:00
asuessenbach 66953f4039 Combine two types of commands into one generation function 2022-05-11 10:00:53 +02:00
asuessenbach 7375def842 Cleanup on return type generation 2022-05-04 17:06:28 +02:00
asuessenbach a591ef69e3 (re-)add support of commands enumerating a chained structure type. 2022-05-04 09:55:27 +02:00
asuessenbach f9ad86aef8 Remove deprecated implicit-cast operators on vk::ResultValue. 2022-05-03 09:47:58 +02:00
asuessenbach 145c10e945 Combine two types of commands into one generation function 2022-05-02 17:01:38 +02:00
asuessenbach b45a44b479 Combine two types of commands into one generation function 2022-04-28 16:32:33 +02:00
asuessenbach 74fd07216e Combine two types of commands into one generation function 2022-04-27 13:37:28 +02:00
asuessenbach e5921db439 Combine two types of commands into one generation function 2022-04-26 12:35:15 +02:00
asuessenbach 90afc89e66 Combine two types of commands into one generation function 2022-04-21 11:27:39 +02:00
Andreas Süßenbach e9c343c402
Merge pull request #1289 from asuessenbach/function
Combine two types of commands into one generation function
2022-04-19 13:34:44 +02:00
asuessenbach 769827ed3d Combine two types of commands into one generation function 2022-04-19 11:59:33 +02:00
phantom10111 9e95c0072d Make type conversions implicit for dispatchable handles
Vulkan handles are not typesafe on 32-bit platforms, but only for
non-dispachable handles. Dispatchable handles are opaque struct pointers
on all platforms, and thus typesafe.

This commit makes all conversions for dispatchable handles implicit,
regardless of VULKAN_HPP_TYPESAFE_CONVERSION setting.
2022-04-15 11:24:30 +02:00
asuessenbach 9c99d1b2ce Combine two types of commands into one generation function 2022-04-14 08:03:15 +02:00
asuessenbach 4ba01be8d1 Combine two types of commands into one generation function. 2022-04-13 09:45:31 +02:00
asuessenbach 956cda998b Combine two types of commands into one generation function. 2022-04-12 13:56:21 +02:00
asuessenbach 26e2fc42c8 Combine two types of commands into one generation function. 2022-04-07 16:04:26 +02:00
asuessenbach d50485c5c7 Combine two types of commands into one generation function. 2022-04-07 08:48:55 +02:00
asuessenbach 45e5418332 Combine two types of commands into one generation function. 2022-04-05 10:02:00 +02:00
asuessenbach 0328693bba Add support for commands returning void and getting you a single opaque object represented by a size and a void-pointer 2022-04-04 11:58:06 +02:00
asuessenbach 6fca13eaba Add support of commands returning void and getting a vector of data. 2022-03-31 17:52:32 +02:00
asuessenbach 333083e44e Combine two types of commands into one generation function. 2022-03-31 09:52:06 +02:00
asuessenbach a8d47f4694 Combine two types of commands into one generation function. 2022-03-28 17:52:45 +02:00
asuessenbach aad66ebe1c Add support for commands enumerating some stuff, without any error codes. 2022-03-28 09:58:37 +02:00
asuessenbach 5e8fb94890 Add support for commands getting two values. 2022-03-23 10:00:40 +01:00
asuessenbach a104fd65d3 Combine two types of commands into one generation function. 2022-03-16 13:51:43 +01:00
asuessenbach ae11e13e0b Combine two types of commands into one generation function.
Generation of functions that return a VkResult and either get some data or not are combined into one function.

+ some minor cleanup
2022-03-15 11:58:55 +01:00
asuessenbach f58ffe385f Combine two types of commands into one generation function.
Generation of functions that get a StructureChain or some value are combined into one function.
2022-03-14 14:54:56 +01:00
asuessenbach 611365b986 Updated clang_format options 2022-03-09 12:28:52 +01:00
asuessenbach 4fd8ad4baa Minor cleanup work in command generation. 2022-03-09 10:13:51 +01:00
asuessenbach 02cd5ee1c9 Combine two types of commands into one generation function. 2022-03-02 17:57:36 +01:00
asuessenbach 5fe410279a Change ColumnLimit with clang-format from 120 to 160. 2022-02-28 10:11:04 +01:00
asuessenbach 85510bf12c Combine two types of commands into one generation function. 2022-02-24 09:09:45 +01:00
asuessenbach fe8fad5d96 Combine two types of commands into one generation function. 2022-02-23 08:31:36 +01:00
asuessenbach 7f58864c78 Combine two types of command into one generation function. 2022-02-22 10:03:17 +01:00
asuessenbach b8522e483c Introduce member function clear() for raii-classes. 2022-02-15 10:50:52 +01:00
asuessenbach b1a822983d Introduce member function swap() for raii-classes. 2022-02-14 15:11:46 +01:00
asuessenbach 6f2dd058a0 Unified generation of a special type of commands.
Commands returning a VkResult with one or more error codes specified, getting no non-const pointer and zero or more vectors are combined into one function, no matter if it is specified to have one or more success codes.
2022-02-09 09:27:30 +01:00
asuessenbach c25e890527 Remove support of all functions marked as deprecated. 2022-02-07 10:09:46 +01:00
asuessenbach c29a549f8c Generalize command generation for a specific type of commands
Commands returning a VkResult, with multiple success codes and at least one error code, that get no non-const pointers and zero or more input vectors are generalized into one function.
2022-01-24 10:19:23 +01:00
asuessenbach b643095d78 Generalize command generation for a specific type of commands
Commands returning a VkResult, with a single success code and at least one error code, that get no non-const pointers and zero or more input vectors are generalized into one function.
2022-01-19 08:45:28 +01:00
asuessenbach 350a74f1e1 Generalize command generation for a specific type of commands
Commands returning void, that get no non-const pointers but one or more const pointers or vectors are generalized into one function.
2022-01-13 16:16:16 +01:00
asuessenbach 192bf5f3ed Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, and any number of const pointers is generalized to support const void pointer as well, replacing those arguments by const& on a templated type.
2022-01-11 09:45:35 +01:00
asuessenbach 6cbe0ba5e2 Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, just one const pointer is generalized to support a const void pointer as well, replacing that argument to a const& on a templated type.
2022-01-10 11:50:11 +01:00
asuessenbach eecfe9bf42 Extend operator==() and operator<=>() on structures to compare null-terminated string members 2022-01-05 16:20:13 +01:00
Andreas Süßenbach cb5347205f
Merge pull request #1173 from asuessenbach/deprecated
Remove deprecated version of function Device::getCalibratedTimestampsEXT().
2022-01-04 08:51:22 +01:00
asuessenbach 10e8f07e85 Remove deprecated version of function Device::getCalibratedTimestampsEXT(). 2022-01-03 15:33:51 +01:00
asuessenbach edc0ce883f Restrict reflect() on structures to non-GCC and GCC version above 7.5. 2022-01-03 14:17:12 +01:00
asuessenbach ce3eb55ada Introduce simple reflection function on vk-structs
Used that to simplify comparison operators.
2021-12-16 14:35:17 +01:00
asuessenbach cdb64cdefd Generate std::hash specializations into the new file vulkan_hash.hpp, requiring C++14 for std::hash specializations of the vulkan structures. 2021-12-13 17:00:00 +01:00
asuessenbach 3515c720fc Introduce support of std::hash for vk-structures. 2021-12-02 23:28:26 +01:00
asuessenbach 5d5182ce70 Introduce a couple of trait functions on vk::Format. 2021-11-29 10:00:19 +01:00
asuessenbach 976debbd80 Add support for new elements <formats> in vk.xml. 2021-11-23 13:23:14 +01:00
asuessenbach bf73d74aa9 Remove deprecated versions of function PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR 2021-11-16 13:29:50 +01:00
Andreas Süßenbach 323c921a19
Merge pull request #1132 from Saalvage/more-constexpr
More support for constexpr
2021-11-15 17:59:19 +01:00
asuessenbach b5d312187c Add support of functions enumerating chained structure data.
+ slightly reordered error handling in enumerating functions.
2021-11-15 15:05:17 +01:00
Salvage 4017a99055
More constexpr support! 2021-11-12 02:59:37 +01:00
asuessenbach e5f9ef470e Minor cleanup work. 2021-11-11 16:00:22 +01:00
asuessenbach 2a55e8ef2f Minor cleanup work. 2021-11-09 08:40:53 +01:00
asuessenbach 0beeac873a Remove dumb parent-pointer in raii-objects. 2021-11-08 17:31:36 +01:00
asuessenbach c7838676bd Minor cleanup work. 2021-11-02 09:31:32 +01:00
asuessenbach e725ff31bd Refactor parent member of the vk::raii classes. 2021-10-25 13:37:43 +02:00
asuessenbach 714b953e51 Minor cleanup work. 2021-10-25 09:30:04 +02:00
asuessenbach 5a4eceb0ab Introduce factory methods for the RAII handle classes. 2021-10-18 13:42:45 +02:00
asuessenbach 7645e4eb82 Minor cleanup work. 2021-10-18 10:35:17 +02:00
asuessenbach dcb654bc0b Minor cleanup work.
+ changed CXX_STANDARD for VulkanHppGenerator from 14 to 17.
2021-10-11 10:20:26 +02:00
asuessenbach 6db58639f8 Add support of functions taking and returning a vector of data 2021-10-06 12:51:26 +02:00
asuessenbach 0122305ce8 Some more code cleanup 2021-10-04 12:10:04 +02:00
asuessenbach 3fdf58cd5f Minor cleanup work. 2021-10-04 09:34:57 +02:00
asuessenbach 11f18e8502 Add "singular" version of functions returning a vector of values and one value, now returning just a pair of values 2021-09-27 15:32:23 +02:00
asuessenbach f555afeac6 Refactor command generation of RAII handles. 2021-09-27 11:30:20 +02:00
asuessenbach 62ee069886 Minor cleanup work. 2021-09-23 14:00:07 +02:00
asuessenbach 80acc02777 Refactor command generation. 2021-09-22 17:25:22 +02:00
asuessenbach 4e055c376d Move argument type check of func pointers to final check. 2021-09-21 14:20:24 +02:00
asuessenbach b39d6aa44d Refactor RAII-handle constructor generation. 2021-09-21 08:36:04 +02:00
asuessenbach 65e9dd2e3c Minor cleanup work. 2021-09-18 22:55:31 +02:00
asuessenbach dd1855a820 Add support for commands returning two values. 2021-09-14 15:38:35 +02:00
asuessenbach 48d6492647 Minor cleanup work. 2021-09-13 14:49:02 +02:00
asuessenbach c13b8f56bf Refactor commands generation. 2021-09-06 14:38:17 +02:00
asuessenbach 9d7ade83f2 Minor cleanup work. 2021-08-05 17:28:06 +02:00
asuessenbach 584e7115e8 Rearrange handling of struct aliases. 2021-08-05 09:21:55 +02:00
asuessenbach 35a43611f8 Improved some checks on structures/aliases 2021-08-04 15:28:59 +02:00
asuessenbach 6bbd64aaa5 Minor cleanup work. 2021-08-04 13:34:08 +02:00
asuessenbach 5066b7b488 Minor cleanup work. 2021-08-02 10:17:22 +02:00