Commit Graph

48 Commits

Author SHA1 Message Date
asuessenbach
fba2516d9c Remove implicit cast operators on ResultValue<T>
As it turned out to not provide a complete solution to the C++-API-change issue on logical-change of the C-API, we simply remove those implicit cast operators. That is, accessing the result and the value need to be explicit.
2020-07-22 16:49:42 +02:00
asuessenbach
4cdc51ba0f Introduce usage of [[nodiscard]] with C++17 2020-07-22 10:59:12 +02:00
Andreas Süßenbach
d4774ad6e8
Merge pull request #649 from mocabe/assert-on-result
Add VULKAN_HPP_ASSERT_ON_RESULT
2020-06-30 09:00:35 +02:00
mocabe
00fc7714f0 [doc] Add short doc for VULKAN_HPP_ASSERT_ON_RESULT 2020-06-30 01:45:59 +09:00
Markus Tavenrath
34076925af Add defines to put the storage for a DispatchLoaderDynamic in a DLL. 2020-06-29 09:21:28 +02:00
asuessenbach
db58507063 Introduce VULKAN_HPP_NO_STRUCT_CONSTRUCTORS so support designated initializers.
You have to define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS to remove all the struct constructors from vulkan.hpp, so that you can use designated initializers on them.
Of course, makes only sense with C++20.
2020-06-24 11:28:43 +02:00
asuessenbach
f5e59484a6 Introduce usage of clang-format to format vulkan.hpp and the other sources. 2020-04-23 10:55:02 +02:00
asuessenbach
a5e8a7ccb8 Update to and adjustments for VK_HEADER_VERSION 136. 2020-03-30 12:13:07 +02:00
Andreas Süßenbach
afe4e6b03f
Extent readme on samples and tests. (#449) 2019-12-03 10:15:06 +01:00
Andreas Süßenbach
f2058303cb Introduce functions vk::StructureChain::unlink<ClassType>() and vk::StructureChain::relink<ClassType>(). (#441)
Resolves #439.
2019-11-28 15:58:15 +01:00
Andreas Süßenbach
dc43cf795f Update README.md (#418) 2019-11-06 14:45:41 +01:00
Andreas Süßenbach
702ff6f982 Mention the new proposed handling of DispatchLoaderDynamic as the default in the README.md. (#397) 2019-09-30 21:13:10 -04:00
Andreas Süßenbach
720c8aec77 Mention the samples in the readme. (#384) 2019-09-18 08:47:37 +02: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
1ddafc1c56 Corrected functions dealing with StructureChains. (#253)
+ adjusted readme.md accordingly
+ added (a first!) test project
2018-09-19 13:49:43 +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
Bradley Austin Davis
73cb8c8096 Add link to port of Sascha's examples (#214) 2018-05-02 11:27:03 +02:00
Olivier FAURE
f4767bace6 Fix other 'unqiue' typo (#200) 2018-03-27 09:01:31 +02:00
Sean Baggaley
45d2571cc5 Fix a typo in the readme (#193) 2018-03-11 19:28:06 +01:00
Olivier FAURE
bae68b49aa Fix typo in README.md (#179) 2018-02-07 08:29:50 +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
Samuel Williams
977da9e304 Tidy up README.md, add "See Also" and "License". (#159)
- Fix indentation of titles.
- Fix usage of code fences.
- Add missing code fences.
- Add missing language declarations.
- Move project description above header.
- Fix some minor typos.
- Add See Also (fixes #112)
- Add inline license according to LICENSE.txt.
2017-12-05 16:33:37 +01:00
Karl Schultz
d62cb5d199 Add Travis-CI badge to README.md (#88)
Show Travis-CI build status in the README.md so that it is easily seen while viewing the GitHub repo.
2017-10-09 17:22:01 +02:00
Markus Tavenrath
8da778cfb3 Bump Visual Studio requirement to VS2015 and add UnqiuePtr documentation. (#130) 2017-09-28 10:21:35 +02:00
Markus Tavenrath
b4694d931c Make Vulkan-Hpp namespace configurable. (#129) 2017-09-19 14:55: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
Dylan McGannon
93fca3b8d9 Removed extra back tick. (#94) 2017-03-20 19:18:08 +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
c8df19c07b Update documentation to include latest features (#42) 2016-10-19 16:07:39 +02:00
Markus Tavenrath
bc59efe23c Remove nvidia references 2016-07-26 16:28:30 +02:00
jeaye
6740df4faf Change readme example to catch std::exception (#4)
There are two reasons for this change.

1) The C++ mantra "throw by value, catch by reference" still applies,
even when you're only specifically throwing std::system_error at this
time
2) Vulkan-Hpp is using C++ stdlib containers, such as std::string and
std::vector, which have their own exception specifications to consider.
The example provided may throw various exceptions, all of which derive
from std::exception, and many will not be std::system_error.

This is a serious issue in the readme simply because that snippet of
code will be the copy/pasted foundation of many projects which adopt
Vulkan-Hpp. We might as well try to avoid some common pitfalls of
exception handling.
2016-07-25 20:40:22 +02:00
Andreas Süßenbach
d2aea04b6c Renamed from VkCpp to VulkanHpp 2016-06-21 10:35:47 +02:00
Markus Tavenrath
82841a9751 Add reference to Sascha Willems samples port from Brad Davis. 2016-06-07 08:04:07 +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
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
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
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
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
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
06649553bd Added missing </code> in README.md 2016-03-07 09:12:58 +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
Markus Tavenrath
9c6888edf3 Fix issue #34, provide null() references for structs 2016-02-26 11:42:15 +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
Markus Tavenrath
fab1131447 Update README.md with tiny code samples on how to use the new C++ objects 2016-02-24 13:45:21 +01:00
Markus Tavenrath
be14a994fb Add getString(VkEnum)/getString(VKFlags) support 2016-02-18 13:55:42 +01:00
Markus Tavenrath
cd12306797 switch to TinyXML2 which is being fetches as submodule 2016-02-17 15:35:00 +01:00
Markus Tavenrath
0b8dfc3968 Initial revision for Vulkan 1.0 2016-02-16 15:07:55 +01:00