Commit Graph

379 Commits

Author SHA1 Message Date
Andreas Süßenbach
141e8ce93b Use constexpr on simple class constructors. (#195) 2018-03-12 14:39:06 +01:00
Andreas Süßenbach
65223fa8a9 Update to Vulkan 1.1.70.1 (#194) 2018-03-12 10:16:26 +01:00
Andreas Süßenbach
7e2c734a9a Fix ObjectDeleter arguments for NoParent cases. (#192) 2018-03-05 10:38:47 +01:00
Andreas Süßenbach
164cd27be0 Fix Deleter objects for Device and DeviceMemory. (#190) 2018-02-26 15:25:08 +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
Markus Tavenrath
ac3ad25808
Update to Vulkan 1.0.69 (#186) 2018-02-20 10:29:19 +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
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
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
Markus Tavenrath
b8b1b4db63 Fix issue #151: Add functions to get the parent & allocator or pool from a UniqueHandle (#155) 2017-11-29 16:51:35 +01:00
Markus Tavenrath
4da433e279 Fix issue #133: Add explicit conversion from C-style Vulkan flags to Vulkan-Hpp flags (#154) 2017-11-29 14:56:03 +01:00
Markus Tavenrath
1a32a6c072 Add constructors for readonly structures (#153) 2017-11-29 14:53:57 +01:00
Andreas Süßenbach
509a3df5bb Use generated enumeration for sType in struct constructor, instead of generating that value out of the structure's name
- Fixes issues on IOS and MacOS platform
- Added some checks on vendorids, tags, and some types.
2017-11-29 10:09:32 +01:00
Markus Tavenrath
6e12cceb37
Fix issue #146. Remove constexpr to bring back support for VS 2013. (#149) 2017-11-24 11:14:03 +01:00
Markus Tavenrath
e464d695dd Fix issue mentioned in PR #137. There's no technical reason not to allow vk::UniquePtr with exceptions are disabled. (#142) 2017-10-24 16:35:31 +02:00
Andreas Süßenbach
cb55e77f53 Adjustments for Vulkan 1.0.64 (#140) 2017-10-24 16:15:43 +02:00
Markus Tavenrath
5ee30d3ce1 Update to Vulkan 1.0.62 (#136) 2017-10-09 17:21:32 +02:00
Markus Tavenrath
6681979254 Allow passing allocator object as parameter when using custom allocators for std::vector return types (#132) 2017-09-28 23:37:27 +02:00
Andreas Süßenbach
0b8ab65be2 Adjustments to changes with Vulkan 1.0.61 (#131)
To generate Vulkan.hpp version 1.0.61 change line 5336 in vk.xml from
        <command>
to
        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
2017-09-28 11:49:17 +02:00
Markus Tavenrath
b4694d931c Make Vulkan-Hpp namespace configurable. (#129) 2017-09-19 14:55:47 +02:00
Samuel Williams
daae0b6194 Add UniqueHandle non-const accessors, ensure all by reference. (#123)
* Add UniqueHandle non-const accessors, ensure all by reference.

- Add `Type * operator->()`
- Fix `Type get() const` to `const Type & get() const`
- Add `Type & get()`

* Add support for structure pointer chains was missing some generator code.

* Update vulkan.hpp with changes.
2017-09-14 15:22:47 +02:00
Markus Tavenrath
bca6564dac Add support for structure pointer chains & bump version to 1.0.57 (#119) 2017-08-16 11:46:45 +02:00
Andreas Süßenbach
a50ea7dc6c Update to Vulkan 1.0.55 (#116) 2017-07-19 09:35:28 +02:00
Andreas Süßenbach
195479de01 bracket the exception definitions by "#ifndef VULKAN_HPP_NO_EXCEPTIONS" (#114) 2017-06-26 15:25:53 +02:00
Andreas Süßenbach
c71fcac937 Update to Vulkan 1.0.51 (#111) 2017-06-16 15:52:34 +02:00
Markus Tavenrath
8f21dfa0f5 Use string templates in more places (#106) 2017-05-16 15:32:14 +02:00
Markus Tavenrath
850e77938f Add support for template strings in code generator to make the code generator more readable. (#103)
Update to Vulkan 1.0.48
2017-05-11 18:21:14 +02:00
Andreas Süßenbach
cd9d4f1388 Unify long string literals to use raw string literals. (#101) 2017-04-28 18:49:59 +02:00
Damian Dyńdo
6e9d9b5111 Introduce custom exceptions for Vulkan-Hpp (#97) (#99) 2017-04-26 09:30:24 +02:00
Andreas Süßenbach
bea247fd4e Cleanup and commenting on the writing part. (#98) 2017-04-24 09:30:02 +02:00
Andreas Süßenbach
6f37c62592 Update to version 1.0.46 (#96)
+ extend enum value handling to handle names with multiple extension tags.
2017-04-06 14:36:03 +02:00
Markus Tavenrath
512ab0b85e Update to version 1.0.42 (#89) 2017-02-27 15:34:11 +01:00
Andreas Süßenbach
8e3dd21d42 Add missing "std::" to nullptr_t. (#83)
Fixes issue #81.
2017-02-16 16:20:24 +01:00
Andreas Süßenbach
413dfd8f12 Introduce explicit constructors of handle-wrappers from raw handles in case of non-typesafe conversion (#82)
Resolves issue #70.
2017-02-15 17:07:50 +01:00
Andreas Süßenbach
9e8f233557 Update to Vulkan 1.0.40; added handling of types and commands from disabled extensions (#80) 2017-02-14 18:28:05 +01:00
Andreas Süßenbach
f0eff17d9b Introduce constructor and assignment operator on nullptr_t (#77)
Fix issue #77
2017-02-14 13:56:11 +01:00
Andreas Süßenbach
43b2c5ef66 Changed *Deleter classes to not hold a pointer to the controlling object, but hold a copy of it. (#76) 2017-02-13 09:23:35 +01:00
Andreas Süßenbach
3b31847126 Cleanup on data structures and more: (#74)
- CommandData now holds it's full function name (without "vk") and it's reduced function name (used as member function name);
- CommandData now holds the name of the owning handle (class), if it is owned by one;
- EnumData now holds the name of that enum;
- for consistency reasons, "Arguments" have been renamed to "Params"
- some functions have been changed to output to std::ostream (instead of std::ofstream), to detect and filter equal function bodies for enhanced/non-enhanced mode;
- changed some functions to use std::algorithms and lambdas instead of explicit loops
2017-02-08 13:56:06 +01:00
Andreas Süßenbach
6243e6deaa Made UniqueHandle constructor explicit. (#72)
Fix issue #67
2017-02-06 13:26:43 +01:00
Andreas Süßenbach
bdbf7fef28 Prevent warning on multiple defined macro VULKAN_HPP_TYPESAFE_CONVERSION in 32 bit. (#71) 2017-02-01 10:15:52 -08:00
Andreas Süßenbach
f7cf7eeb3e re-run generation on Vulkan version 1.0.39 with Structure::setSType() functions filtered out. (#65) 2017-02-01 10:15:05 -08:00
Andreas Süßenbach
43ec5d8ea9 Update to Vulkan 1.0.39 (#63) 2017-01-30 08:09:29 -08:00
Andreas Süßenbach
02404f397d Filter out functions Structure::setSType(), as the structure types are supposed to be immutable. (#60) 2017-01-30 08:08:49 -08:00
Andreas Süßenbach
ae2e22e506 Introduce helper class UniqueHandle; add creation functions returning UniqueHandles (#59) 2017-01-27 06:15:50 -08:00
Markus Tavenrath
9cd09f944f Update to Vulkan 1.0.38 (#57) 2017-01-17 10:14:50 +01:00
Andreas Süßenbach
09e169c46f Update to rel 1.0.35 (#54)
- add some forward declaration support to resolve (direct) circular dependencies
- check on multiple output arguments of functions, using none then
- add "protect" support on handles
- correct type determination on "const Type* const*"
2016-12-01 22:00:03 +01:00
Markus Tavenrath
81dd365ccc Fix naming conventions for functions in README.md and update to Vulkan 1.0.34 (#50)
Fixes issue #49
2016-11-22 08:53:31 +01:00
Markus Tavenrath
3e3c16a0a1 Add constructor to Optional<RefType> which accepts a RefType* in addition RefType& and nullptr. This is required since *nullptr is illegal and writing (ptr == nullptr) ? nullptr : *ptr isn't an efficient solution for the problem. (#45) 2016-11-04 09:14:53 +01:00
Andreas Süßenbach
952667d3c0 Add operator~() on Flags<> and FlagBits (#44)
* Add operator~() on Flags<> and FlagBits
2016-10-26 17:49:58 +09:00
Markus Tavenrath
8236dd0ba9 Update to version 1.0.32 (#43) 2016-10-25 16:51:40 +02:00
Markus Tavenrath
bf2cd41450 Add VULKAN_HPP_INLINE to force inlining in all functions which had the inline keyword before. MSVC didn't inline some of the functions including the critical createResult ones. (#41) 2016-10-17 10:34:14 +02:00
Markus Tavenrath
938db16ce5 Update to Vulkan 1.0.31 (#40) 2016-10-14 18:36:15 +02:00
Markus Tavenrath
1ba3ceaf3f Add support for std::tie on ResultValues. This allows developers to write (#39)
vk::Result result;
vk::Image image;
std::tie(result, image) = device.createImage(...);

when using the non-exception mode.
2016-10-14 16:22:14 +02:00
Markus Tavenrath
d2423209f8 Update to Vulkan 1.0.30 (#38) 2016-10-07 15:14:24 +02:00
Markus Tavenrath
84a35fc36f Fix issue_35, update to Vulkan 1.0.29 (#37) 2016-10-05 13:50:30 +02:00
Markus Tavenrath
820ec7097a Add support for operator< 2016-08-16 08:44:04 +02:00
Markus Tavenrath
1b25982cc9 Add operator== and operator!= to handles. Fix issue #20 (#22) 2016-08-15 16:10:20 +02:00
Andreas Süßenbach
73857ee1dd Add security check and resize on vector-returning functions where the size of the vector is queried from vulkan, and the size can potentially change between querying the size and querying the data. (#18) 2016-08-09 11:33:30 +02:00
Markus Billeter
40139e1741 Regenerate vulkan.hpp 2016-07-27 14:24:10 +02:00
Markus Tavenrath
02f86eafea Update to version 1.0.21 (#12) 2016-07-27 09:41:47 +02:00
Markus Tavenrath
bc59efe23c Remove nvidia references 2016-07-26 16:28:30 +02:00
Markus Tavenrath
a31b910628 Fix gcc/clang includes and warnings 2016-07-26 16:16:45 +02:00
Andreas Süßenbach
54eab5414c Introduce operator== and operator!=() on structs 2016-07-25 20:31:10 +02:00
Andreas Süßenbach
c0fb89411e Add member functions begin(), end(), front(), back(), and empty() to vk::ArrayProxy to make it a better container. 2016-07-25 06:04:56 +02:00
Markus Tavenrath
65a7d2f644 Update to Vulkan 1.0.17, Switch to Apache 2.0 license 2016-07-14 10:29:16 +02:00
Andreas Süßenbach
be9beb84ac Added singular version of some functions
For functions that would return a vector of stuff, a singular version is introduced returning just on stuff.
Currently, that's just createGraphicsPipeline, createComputePipeline, and createSharedSwapchainKHR.
2016-06-22 14:06:14 +02:00
Andreas Süßenbach
d2aea04b6c Renamed from VkCpp to VulkanHpp 2016-06-21 10:35:47 +02:00
Andreas Süßenbach
400c51216f Introduced default for last argument of functions when that argument is a Flag whose corresponding FlagBits has no values.
Currently, it's just Device::mapMemory() and Device::resetDescriptorPool()
2016-06-20 11:15:07 +02:00
Andreas Süßenbach
9aadad05c0 Update to Version 1.0.13 2016-06-16 16:30:27 +02:00
Markus Tavenrath
af6d55398d Merge pull request #121 from asuessenbach/PrivateSType
Made StructureType sType private, as nobody should need to access that.
2016-06-16 03:00:15 +02:00
Andreas Süßenbach
c27468dc4e Changed from two constructors for structures to just one with some default for each element 2016-06-15 17:50:06 +02:00
Andreas Süßenbach
6056e66a77 Made StructureType sType private, as nobody should need to access that. 2016-06-15 15:22:09 +02:00
Andreas Süßenbach
b81f8ec376 Introduced define VK_CPP_NO_EXCEPTIONS, to support calling vk-functions without throwing exceptions on error conditions. Now, depending on that define, some functions can return a struct containing the vk::Result and some generated value. 2016-05-19 11:33:52 +02:00
Andreas Süßenbach
dc0354bdc6 Extended functions returning a std::vector to get the allocator for that vector as a template argument. 2016-05-11 18:08:46 +02:00
Andreas Süßenbach
9fe6b2384e Added nullptr_t-constructor to ArrayProxy, simplifying handling of empty arrays. 2016-05-11 11:07:04 +02:00
Andreas Süßenbach
847b2eebd1 Changed struct/union wrappers from class to struct/union, directly containing the members of the native struct/union
- no accessor functions to those members any more, but just direct access to them available;
- modified "named parameter idiom" to use setter-functions with the prefix "set", continuing with an uppercase letter;
- If the C++11 feature "unrestricted unions" is not supported, unions may hold the native vulkan datatypes, instead of those from the vk-namespace (in fact, it's just the vk::ClearValue that needs handling here). For clang, gcc, and MSVC compiler, the support of/version supporting this feature is checked; for other compilers, you need to check on your own and define VK_CPP_HAS_UNRESTRICTED_UNIONS if appropriate.
2016-05-09 15:26:12 +02:00
Markus Tavenrath
59416fdffa Merge pull request #105 from asuessenbach/ArrayProxy
Introduce helper class vk::ArrayProxy.

replaces std::vector and std::initializers_list replacements of pairs of (count, [const] T*) in the enhanced interface, resulting in fewer function overloads.
has constructors for T, (count, [const] T*), std::array<[const]T,N>, std::vector<[const]T], and std::initializer_list.
2016-05-06 10:43:05 +02:00
Andreas Süßenbach
2c259237dc Introduce helper class vk::ArrayProxy.
- replaces pairs of (count, [const] T*) in the enhanced interface
- has constructor for single T, (count, [const] T*), std::array<[const]T,N>, std::vector<[const]T], and std::initializer_list<const T>.
2016-05-04 16:12:25 +02:00
Andreas Süßenbach
4b9e1ae57e some adjustments:
- to_string of empty enums return "(void)", instead of empty string
- to_string of undefined enum value return "invalid", instead of "unknown"
- to_string of Flags of empty Enums or Flags with no bit set return "{}", instead of empty string
- to_string of Flags embraces the flags with "{", "}"
- all typedefs are replaced with using expressions
2016-05-02 15:27:38 +02:00
Andreas Süßenbach
3ba0905e26 Update to Version 1.0.11: extended writeExceptionCheck to support an arbitrary number of successCodes. 2016-04-29 15:24:27 +02:00
Andreas Süßenbach
c5bcc9410c Added overload of enhanced functions using std::initializer_list instead of std::vector 2016-04-13 13:52:09 +02:00
Markus Tavenrath
3359b16c39 Improve usability
- Enable enhanced mode by default, use VKCPP_DISABLE_ENHANCED_MODE to disable it
- Rename vk_cpp.h to vk_cpp.hpp to be more standard-conform with regards to naming
- Automatically use vk.xml from submodule if no other file has be specified
- Generate header in vulkand folder to avoid copying the file after generating it
- Catch exceptions in generator
2016-04-12 12:19:52 +02:00
Markus Tavenrath
cdd70520bc Merge pull request #97 from asuessenbach/version_check
Updated version check to new VK_HEADER_VERSION, incompatible with ver…
2016-04-11 15:59:25 +02:00
Andreas Süßenbach
976a980afa Updated version check to new VK_HEADER_VERSION, incompatible with version 1.0.5 and before 2016-04-11 14:14:26 +02:00
Andreas Süßenbach
4d67b6d1a5 changed enhanced version of CommandBuffer::pushConstants to be templated by value type, corrected CommandBuffer::pushConstant to be templated by value type as well 2016-04-11 11:30:23 +02:00
Markus Tavenrath
ab89b93948 Merge pull request #93 from asuessenbach/singular
Introduced version of functions handling singular element arguments i…
2016-04-05 22:24:19 -07:00
Andreas Süßenbach
6a8d520ffc Introduced version of functions handling singular element arguments instead of a std::vector arguments 2016-04-01 13:45:20 +02:00
Andreas Süßenbach
9361a735ee Remove extension tag from extension enum values 2016-04-01 10:47:10 +02:00
Andreas Süßenbach
a69a47e00e Added default argument value nullptr for last Optional arguments
+ made vk::Flags::operator bool() explicit
+ changed vk::Flags default MaskType from uint32_t to VKFlags
+ removed some unneeded "vk::"
2016-03-31 12:08:15 +02:00
Andreas Süßenbach
3e8964e181 Changed functions that could return eIncomplete to loop while incomplete and return the final result. 2016-03-30 12:18:19 +02:00
Andreas Süßenbach
e30ca6ffa2 fix typo in Optional::operator bool(): needs to be !!, not ! ! 2016-03-23 17:54:55 +01:00
Andreas Süßenbach
54fced9dd3 changed functions with optional std::string parameters from "std::string const &" to "vk::Optional<std::string const> const &";
moved vk::Optional constructor on std::nullptr_t from private to public;
introduced vk::Optional::operator->() and explicit operator bool();
removed static operator null() on all struct-wrapper classes
2016-03-23 16:08:30 +01:00
Andreas Süßenbach
e4d6945097 rename vk::GetString to vk::to_string; remove superfluous typename from friend declaration of RefType in class Optional, remove superfluous std::moves 2016-03-21 13:56:18 +01:00
Markus Tavenrath
eb1c207fa7 Fix issue 68, introduce vk::Optional class which to support optional references 2016-03-15 17:52:19 +01:00
Andreas Süßenbach
2013e7c7a7 Corrected stripping a tag from a string; updated generated vk_cpp.h to Version 1.0.5 2016-03-14 11:52:28 +01:00
Andreas Süßenbach
147f8ee621 Changed preliminary vk::Exception to std::system_error. 2016-03-08 10:02:07 +01:00
Markus Tavenrath
c66b98b4e8 Merge pull request #60 from asuessenbach/copyright
Added copyright message from <comment> section in vk.xml
2016-03-04 11:58:14 +01:00
Andreas Süßenbach
1f689355c4 Cleanup on function body writing 2016-03-04 11:48:41 +01:00
Andreas Süßenbach
23f15ebdd0 Added copyright message from <comment> section in vk.xml 2016-03-04 10:51:47 +01:00
Andreas Süßenbach
dfd3253029 Added missing const qualifier for member functions in non-enhanced mode, added some checks agains not defined VK_CPP_ENHANCED_MODE to prevent multiple functions with identical signature 2016-03-02 11:56:09 +01:00
Andreas Süßenbach
73e20c47d4 Moved vulkan functions into the wrapper class of its first handle argument, adjusted name and argument list 2016-03-02 10:01:52 +01:00
Andreas Süßenbach
69cbb6c5e3 Fix issue #44: don't change return type of functions that are supposed to return something different from Result 2016-02-29 14:41:52 +01:00
Andreas Süßenbach
f7029107a9 Updates to support vulkan version 1.0.4 2016-02-29 11:18:19 +01:00
asuessenbach
fa439aa10f Merge pull request #52 from mtavenrath/issue_34
Fix issue #34, provide null() references for structs
2016-02-26 12:06:24 +01:00
Andreas Süßenbach
14845d1edf Fix issue #45: added non-const getters 2016-02-26 12:01:11 +01:00
Markus Tavenrath
9c6888edf3 Fix issue #34, provide null() references for structs 2016-02-26 11:42:15 +01:00
Markus Tavenrath
cec57bd4eb Fix issue #49, unreferenced parameters and local functions 2016-02-26 11:02:34 +01:00
Markus Tavenrath
49c7dc2802 Add support for operator bool() and operator!() in handles to support if(handle) and if(!handle) 2016-02-26 09:59:27 +01:00
Markus Tavenrath
66627474fe Add copy constructors, assignment operators and cast operators to go forth and back between vkcpp and native vulkan structs and handles. 2016-02-25 17:58:29 +01:00
Andreas Süßenbach
9ca6fc4c9a Fix issue #36: enum value names for extensions and vk::Result 2016-02-25 15:04:11 +01:00
Andreas Süßenbach
217ad3fb66 changed vk::cmdUpdateBuffer and vk::getQueryPoolResults to get a templated vector of data. 2016-02-24 14:02:42 +01:00
Andreas Süßenbach
524ebc9ff9 Introduced wrapper classes for handles, moved handle related functions into those classes; introduced exceptions for error handling. 2016-02-23 13:40:04 +01:00
Markus Tavenrath
ba67848d0b Add scoped enums for flags without enum values to ensure type safety for all enums 2016-02-19 15:47:16 +01:00
Markus Tavenrath
be14a994fb Add getString(VkEnum)/getString(VKFlags) support 2016-02-18 13:55:42 +01:00
Markus Tavenrath
4aa2b3f4dc Fix issue #13, support extending enums by extensions 2016-02-18 10:15:51 +01:00
Markus Tavenrath
759aca579f Fix issue #14, include cassert in the vk_cpp.h 2016-02-17 19:40:01 +01:00
Markus Tavenrath
b4d5dcbe19 Fix issue #9, Flags got converted to bool() when using static_cast to convert them to Vk*Flags 2016-02-17 17:45:27 +01:00
Markus Tavenrath
a587b24994 Fix Issue #6, default values for handles must not be nullptr for 32-bit environments 2016-02-17 17:07:35 +01:00
Markus Tavenrath
9e777f256b Fix issue #7, add #pragma once to generated header 2016-02-17 16:29:56 +01:00
Markus Tavenrath
027c6091b2 Add vk_cpp.h based on vk.xml of Vulkan 1.0 2016-02-16 15:10:44 +01:00