Commit Graph

803 Commits

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