Commit Graph

220 Commits

Author SHA1 Message Date
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
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