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