Commit Graph

203 Commits

Author SHA1 Message Date
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
Matthew Pohlmann
c5c5fea2dd Use VULKAN_HPP_ASSERT instead of assert (#332)
* Use VULKAN_HPP_ASSERT instead of assert

Update `DispatchLoaderDynamic::init(...)` to use the `VULKAN_HPP_ASSERT` macro instead of a plain `assert`.

* Update vulkan.hpp
2019-06-12 08:17:41 +02:00
Andreas Süßenbach
a6ad0f1eff Re-introduce vulkan/vulkan.hpp; adjust include order to use that header in samples and tests (#340) 2019-06-11 13:25:36 +02:00
nyronium
cd6e0a6a89 Corrected inline if, which should be evaluated before writing output (#337) 2019-06-11 10:13:39 +02:00
nyronium
96299b3a1f Rename variables named 'requires' which is a keyword in c++20 (#336) 2019-06-11 10:12:37 +02:00
Markus Tavenrath
50e0a941e9
Use new Vulkan-Headers repository. Don't generate createReturnValue function call if the return type is void. (#335) 2019-06-06 13:13:38 +02:00
Markus Tavenrath
d2a1056a56
Add support for Vulkan header version 109 (#333) 2019-05-30 09:18:32 +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
d566d2200c
Add helper function to copy a vector of UniqueHandles into a vector of UniqueHandle::element_type. (#327) 2019-05-16 08:07:36 +02:00
Andreas Süßenbach
ac10dafd73
Add handling of "comment" to disabled extensions. (#330) 2019-05-13 12:06:41 +02:00
Jarrett Johnson
61e92d4842 Add type alias for underlying type of vk::UniqueHandle (#326)
* Add type alias for underlying type of vk::UniqueHandle

* Type alias to UniqueHandle

* Unique Handle Type alias moved
2019-05-09 09:22:10 +02:00
Andreas Süßenbach
d4ddb0a2cd Add error check before filling a vector of UniqueHandles from just created handles. (#319) 2019-04-08 11:33:49 +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
70c837fba2 Add DispatchLoaderDynamic constructor for use with linked vulkan library. (#300) 2019-03-13 15:33:33 +01:00
Wunkolo
a08954c470 Add structurechain tuple-based getter (#292) 2019-03-11 15:25:31 +01:00
Andreas Süßenbach
018ebdd87f Fix construction of multiple flags in to_string() functions. (#293)
Fix construction of multiple flags in to_string() functions based on Wunkolos proposal.
2019-02-25 10:46:51 +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
9a4f863d6e Add missing return statement to to_string functions on *Flags. (#287) 2019-02-05 10:59:17 +01:00
Andreas Süßenbach
67ffe214e3 Change API of class DipatchLoaderDynamic to be based on vkInstance etc. instead of vk::Instance; add test to show how to use it. (#284) 2019-01-22 09:03:03 +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
b4080fb425 Correct usage of UniqueHandle<Type,Dispatch> in functions returning vectors of UniqueHandle<Type>. (#278) 2018-12-05 15:53:54 +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
Andreas Süßenbach
80518392d5 Introduced NoException test and resolved some warnings on unused parameters in the createResultValue functions. (#275) 2018-12-03 14:30:36 +01:00
Andreas Süßenbach
a616542f3c
Fix issue with unused parameter "vectorAllocator" in some functions. (#277)
+ update to version 94.
2018-11-29 13:21:24 +01:00
Mike Cowan
95fde2253b Use std::move when calling createResultValue with NO_EXCEPTIONS (#273) 2018-11-27 13:03:20 +01:00
Andreas Süßenbach
f99407cf28 Check result in two-step functions like enumeratePhysicalDevices (#270)
Resolves issue #265
2018-11-07 21:46:18 -05:00
Andreas Süßenbach
c02200ce37 Add support for stateful allocators used with functions returning a std::vector. (#263)
+ update Vulkan-Docs
2018-10-26 09:07:25 +02:00
Andreas Süßenbach
605ff24487 Add an error check on functions returning VkResult but not specifying success codes. (#262) 2018-10-15 14:27:42 +02:00
Andreas Süßenbach
b5af45219b Resolve a couple of warnings. (#255) 2018-09-25 11:23:27 +02:00
WubiCookie
e4447ba76e Fix instance-level functions being loaded with vkGetDeviceProcAddr in vk::DispatchLoaderDynamic::init (#257) 2018-09-25 10:53:37 +02:00
Andreas Süßenbach
127de1bf93 Update to Vulkan 1.1.85. (#258) 2018-09-25 10:46:26 +02:00
Andreas Süßenbach
295d5c755f Extend checking of StructureChains to allow transitive extension. (#254) 2018-09-20 15:20:00 +02:00
Andreas Süßenbach
1ddafc1c56 Corrected functions dealing with StructureChains. (#253)
+ adjusted readme.md accordingly
+ added (a first!) test project
2018-09-19 13:49:43 +02:00
Andreas Süßenbach
1944b56b9f Corrected handling of aliased structure types; (#251)
Improved checking in enum/bitmask handling.
2018-09-18 16:56:44 +02:00
Andreas Süßenbach
77ff84f711 Introduce missing non-const cast-operator on structs and unions. (#250) 2018-09-18 15:03:17 +02:00
Andreas Süßenbach
e48f8f99a3 Correct dependency handling of aliased structures; generalized usage of first argument in member function calls. (#249) 2018-09-17 05:56:50 -07:00
Andreas Süßenbach
a9b5b68572 Switch to warning level 4 (#240) 2018-08-17 17:47:48 +02:00
Andreas Süßenbach
58873a31ef Update to Vulkan 1.1.83 (#239) 2018-08-15 22:07:08 +02:00
Florian Oetke
198bba07ad changed type of m_dispatch member from const& to const* in ObjectDestroy, ObjectFree and PoolFree (fixes #233) (#236) 2018-08-13 09:55:02 +02:00
Markus Tavenrath
7d264c7c10 Update to Vulkan 1.1.81. #undef major, minor and MemoryBarrier due to namespace conflicts. Those macros are deprecated and should not be used anymore. (#234) 2018-07-23 17:23:13 +02:00
Markus Tavenrath
1c06eb7ac0 Change exceptions to warnings for unknown elements & attributes (#232) 2018-07-16 10:26:24 +02:00
Andreas Süßenbach
ccd9636c51 Correct return type of create*Unique functions (#231) 2018-07-13 13:25:15 +02:00
Andreas Süßenbach
76bf85b50e Slightly improved vector-size determination on functions returning a vector and detection if a singular version of a function should be generated. (#229) 2018-07-11 08:50:20 +02:00
Andreas Süßenbach
fbd17bb272 Provide Dispatch type to Deleter classes to allow UniqueHandle destroy-functions use the correct vk-function provided by that Dispatch type. (#228) 2018-07-09 17:13:25 +02:00
Markus Tavenrath
eaf0fda6de
List out default ctor parameters in separate lines (#225)
It's often useful to browse through vulkan.hpp to check what the default values
for various info structs are, but having them on a single line makes it hard to
read.

This change puts each ctor argument on a different line, which makes the
default values more visible.
2018-06-12 09:58:52 +02:00
Markus Tavenrath
3f9ca5433a Print a warning when encountering unknown tags in the xml spec instead of aborting with an exception. (#222) 2018-06-05 11:28:31 +02:00
Markus Tavenrath
ea22107198
Update to Vulkan 1.1.76 (#221) 2018-05-28 09:35:25 +02:00
Markus Tavenrath
dddd845304
Update to Vulkan 1.1.75 (#220) 2018-05-17 16:09:55 +02:00
Patrick Mours
437f800444 Add structure chain constructor which accepts a list of its elements (#217)
Add structure chain constructor which accepts a list of its elements
2018-05-09 16:32:39 +02:00
Andreas Süßenbach
b075d67fbc Add constructor for structures which kind of extends some other structures (like Offset3D extending Offset2D) (#213) 2018-05-07 16:44:32 +02:00
Markus Tavenrath
4b179131e6
When using local version of vulkan.hpp use local version of vulkan.h … (#207)
* When using local version of vulkan.hpp use local version of vulkan.h too so that the headers do match.
* Update to Vulkan 1.1.74
2018-04-23 15:16:32 +02:00
Markus Tavenrath
f54bf98790
Update to Vulkan 1.1.72 (#206) 2018-04-09 14:48:37 +02:00
Andreas Süßenbach
bbaa5956c6 First samples on using vulkan.hpp: 01_InitInstance, 02_EnumerateDevices, 03_InitDevice, 04_InitCommandBuffer, 05_InitSwapchain, 06_InitDepthBuffer. (#197) 2018-03-31 01:09:50 -07:00
Andreas Süßenbach
46d1b60267 Update to Vulkan 1.1.71 (#196) 2018-03-19 11:50:29 +01:00
Andreas Süßenbach
141e8ce93b Use constexpr on simple class constructors. (#195) 2018-03-12 14:39:06 +01:00
Andreas Süßenbach
7e2c734a9a Fix ObjectDeleter arguments for NoParent cases. (#192) 2018-03-05 10:38:47 +01:00
Markus Tavenrath
8dbe1fa9d4 Don't create destroy functions for alias commands (#191) 2018-03-01 11:51:30 +01:00
Andreas Süßenbach
164cd27be0 Fix Deleter objects for Device and DeviceMemory. (#190) 2018-02-26 15:25:08 +01:00
Markus Tavenrath
82a14093cf Don't fail on new platforms tag (#188) 2018-02-20 11:23:54 +01:00
Markus Tavenrath
ce87df93b5 Use the value of VULKAN_HPP_NAMESPACE when creating error strings (#187) 2018-02-20 11:07:51 +01:00
Andreas Süßenbach
ecea796604 Fix wrong template argument in usage of ObjectDeleter for the create*Unique functions. (#184) 2018-02-19 10:44:51 +01:00
Andreas Süßenbach
56f418b41c Remove wrong #if !defined(NDEBUG) (#182) 2018-02-14 05:42:47 -08:00
Andreas Süßenbach
818dc27d06 Introduce overloads for destroy* and free* functions (#180) 2018-02-14 02:49:48 -08:00
Andreas Süßenbach
75cb7d14f1 Correct usage of Allocator in functions returning a vector of UniqueObjects (#178) 2018-02-01 14:45:30 +01:00
Markus Tavenrath
4b77709e49 Add Vulkan function dispatcher which queries pointers through vkGet*ProcAddress (#176) 2018-01-29 16:39:35 +01:00
Andreas Süßenbach
07b4e69c9d Introduce VULKAN_HPP_ASSERT, to allow custom assert. (#175) 2018-01-23 21:10:55 +08:00
Markus Tavenrath
e97e34675d Add support for Vulkan call delegation to support custom loaders. (#174) 2018-01-22 15:36:15 +01:00
Andreas Süßenbach
d74e5f6199 Change functions returning a UniqueHandle to returning a ResultValue<UniqueHandle>::type, making VULKAN_HPP_NO_SMART_HANDLE and VULKAN_HPP_NO_EXCEPTIONS really independent. (#173) 2018-01-16 14:59:54 +01:00
Daniel Kirchner
05586ce4a2 Don't destroy null-objects in UniqueHandle (Fixes #171). 2018-01-14 10:38:05 +01:00
Andreas Süßenbach
c548ea4bf2 Remove constructors for "returnedonly" structures; introduce member inialization for pNext and sType, instead. (#168) 2018-01-05 09:25:38 +01:00
Andreas Süßenbach
c4fcc08e95 Reshape alias handling according to new alias usage in vk.xml. (#167) 2018-01-04 10:51:17 +01:00
Andreas Süßenbach
15ac21442d Refactor into the newly introduced class VulkanHppGenerator. (#164) 2017-12-21 07:40:48 -04:00
Andreas Süßenbach
25ad869b15 Extend checks on attributes, introduce checks on elements (#161) 2017-12-13 22:57:40 +01:00
Andreas Süßenbach
6be84edcd9 Improve error handling by validating attributes and give more meaningful error messages 2017-12-07 08:46:58 +01:00
Markus Tavenrath
047961e987 Update to Vulkan 1.0.66 (#158)
- Add support for the new alias tag
2017-12-04 14:27:47 +01:00
Markus Tavenrath
05bd56f8c5 Fix issue #147. Do not assert on negative result codes when throwing an exception. There're cases where vendors are non-standard conform and return positive return codes and it's also possible that new success codes could be introduced which require special handling. For the latter case it's legit to throw an exception which a positive result code. (#156) 2017-11-30 15:18:58 +01:00