Commit graph

143 commits

Author SHA1 Message Date
Marijn Suijten
6f488cd3db
Expose header version and extension spec version constants (#322)
* Generate constants for value defines

* Expose versioning constants containing macros

* Expose extension SPEC_VERSION constant
2020-09-10 20:46:42 +02:00
Marijn Suijten
2ae160cfc4 generator: Switch #[macro_use] to use and exclude nom::dbg
This avoids an obnoxious error when attemting to use `dbg!()` while
debugging the generator.

Unfortunately there seems to be no way to import * except `dbg`, or
shadow `dbg` (using eg. `use nom::{dbg as _nom_dbg, *};`).
2020-09-02 17:08:20 -07:00
zedrian
ac4d046d4b
Added VK_EXT_tooling_info extension support (#310)
* Added `VK_EXT_tooling_info` extension support.

* Formatting applied.

* cargo-clippy suggestions satisfied.

* cargo-clippy suggestions satisfied.
2020-07-02 12:10:05 +02:00
Maik Klein
4d6bb3949d
Fix clippy lints for 1.43 (#298) 2020-05-10 13:42:07 +02:00
Martin Krošlák
e378a85c78 Update vk-parse to 0.5.0 2020-05-08 10:45:14 -07:00
aloucks
bd6515ced8
Split vk.rs into multiple files (#286)
* Allow the generator to be run from project root dir

* Split vk.rs into multiple files

* Breakup and remove generated vk/prelude.rs

Generator changes:

- No longer convert current dir to a string when checking if the
  path ends with 'generator'
- Pass the 'ash/src' dir instead of the 'vk.rs' path

Generated and generated output changes:

- The majority of prelude.rs has been moved to macros.rs
- The pointer chain and Handle are now included in vk.rs
- Platform types has been moved to its own file.
2020-04-19 19:12:17 +02:00
TheEdward162
a5e5e375b1 add const qualifier to as_raw and from_raw fns on enums 2020-04-11 11:39:22 -07:00
Jasper Bekkers
6bdc403330
[WIP] Khr Ray Tracing (#278)
* Fix incorrect generation of commands with aliases

* Use alias name instead of the actual cmd name

* Generate vulkan ray-tracing bindings

* Add ray-tracing khr

* High level ray tracing support

* Re-enable nv ray tracing extension (this will break the build)

* Generate aliases for extension enums

* Add missing alias because the parser doesn't provide alias information here

* Fix 'unreachable pattern' warnings

* Fix clippy warning

Co-authored-by: Maik Klein <maikklein@googlemail.com>
2020-03-22 16:05:30 +01:00
Maik Klein
af6acb93e5
Fix incorrect generation of commands with aliases (#279)
* Fix incorrect generation of commands with aliases

* Use alias name instead of the actual cmd name
2020-03-22 13:56:01 +01:00
Maik Klein
c32f0dd739 Clippy lints for 1.42 2020-03-15 00:55:26 +01:00
Benjamin Saunders
651462a342
Fix XCB types (#267) 2020-02-02 10:42:59 +01:00
Alexander Ekdahl
00f52cc5ad Vulkan 1.2 Support (#264)
* Updated vk-parse and Vulkan-Headers to Vulkan 1.2

* First pass at generating vk.rs

* Support double

* Generate from EnumSpec::Value

* Remove println

* Fix mutable pointer bug

* cargo fmt

* Update document link

* Remove mention of Vulkan 1.2 support for now

* Add clippy::wrong_self_convention
2020-01-19 09:56:12 +01:00
Maik Klein
17edc8c13c Disable missing_safety_doc 2020-01-18 14:32:56 +01:00
Steve Wooster
54e7097dc7 Make more structs derive PartialEq/Eq/Hash (#248)
Adds equality-related traits to VkClearRect, VkOffset2D, VkOffset3D,
VkRect2D and VkSurfaceFormatKHR. Fixes a typo preventing said traits
from being applied to VkExtent2D.
2019-11-17 11:49:09 +01:00
Maik Klein
e67df2650a
Update VulkanHeaders to 1.1.117 (#222)
* Update VulkanHeaders to 1.1.117

* Mark Ggp definitions as experimental

* Fix is_version

* Switch to 1.1.117
2019-10-20 18:11:13 +02:00
Maik Klein
855068323d
Address all the clippy lints (#233)
* Fix literals in vk.rs

* Address all the other clippy lints in ash

* Module level clippy lint

* More lints

* Make hashmaps generic for clippy

* Remove unused macro import
2019-10-20 17:18:40 +02:00
Benjamin Saunders
4e8090f0bb Replace version macros with const fns 2019-10-05 11:16:35 -07:00
bors[bot]
455adc6c1a Merge #216 #217
216: Update to 2018 edition r=MaikKlein a=aloucks

Fixes #204 

217: Make handle and bitflags constructor functions const r=MaikKlein a=aloucks

Fixes #187

Co-authored-by: Aaron Loucks <aloucks@cofront.net>
2019-05-26 21:21:57 +00:00
Aaron Loucks
fb982fe419 Make handle and bitflags constructors functions const
Fixes #187
2019-05-25 16:00:15 -04:00
Aaron Loucks
634b618852 Run cargo fmt 2019-05-25 15:38:28 -04:00
Aaron Loucks
1ba1d46eb2 Update generator and examples to edition 2018 2019-05-25 15:34:18 -04:00
Aaron Loucks
284043b605 Update to 2018 edition 2019-05-25 15:25:00 -04:00
Benjamin Saunders
bb6427d693 Idiomatic Debug impls for enums and bitflags
Improves consistency with Rust idioms. In particular, readability of
panic messages arising from unwrapped `VkResult`s is vastly improved.
2019-04-23 19:41:17 -07:00
bors[bot]
775a7d035d Merge #196
196: Rewrite builder in the readme r=MaikKlein a=MaikKlein



Co-authored-by: Maik Klein <maikklein@googlemail.com>
Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com>
2019-03-22 12:03:11 +00:00
Aaron Loucks
d52f2c9b3e Reverting changes to Result's Display impl 2019-03-20 21:19:49 -04:00
Maik Klein
90538a05c0 Add docs to the build method 2019-03-20 10:45:17 +01:00
Aaron Loucks
584a3bb5da The doc parameter of define_handle is now optional 2019-03-17 12:54:26 -04:00
Aaron Loucks
ac4e38a3d9 Remove deprecated method impls for std Error 2019-03-16 13:25:21 -04:00
Aaron Loucks
f1fd35350c Convert khronos_link! into a function 2019-03-16 13:22:25 -04:00
Aaron Loucks
adb194891f Add Khronos doc links and other ergonomic cleanup
* Khronos doc links are now automatically generated in vk.rs
* Added doc links to all other non-generated functions
* Implemented std::error::Error for LoadingError
* Made EntryCustom public in addition to the Entry typedef so that
  rustdoc no longer ignores it
* Moved Entry::new into EntryCustom (non-breaking)
* Added EntryCustom::try_enumerate_instance_version. The EntryV1_1 trait
  is not implemented for any type. Even if it were, the function would
  panic for Vulkan 1.0 implementations
* Added entry and instance creation example to lib docs
* Updated the Display impl for vk::Result so that it matches
  other bitmask and enum conventions
* Removed lazy_static dependency because it was no longer being
  referenced
2019-03-16 13:22:24 -04:00
Aaron Loucks
b570edcee2 Add doc links for all non-generated files 2019-03-16 13:22:24 -04:00
Aaron Loucks
7555816b58 Generate doc links for all structs and functions 2019-03-16 13:22:24 -04:00
Aaron Loucks
23cbec85e9 Use BTreeMap only where absolutely necessary 2019-03-14 19:22:52 -04:00
Aaron Loucks
71ab88531e Fix struct generation with constant sized arrays 2019-03-13 17:50:04 -04:00
Aaron Loucks
659b10c5ae Make vk.rs generation idempotent and regenerate
All instances of HashMap and HashSet have been replaced with
BTreeMap and BTreeSet. Repeated generation of vk.rs results
in the same output given the same vk.xml and generator.

Note that this commit still contains the struct generation bug
introduced in PR #191. All structs with fixed sized arrays
are currently generated as slices.
2019-03-13 17:25:29 -04:00
bors[bot]
6672f53ee8 Merge #183
183: [WIP] Implement extension chaining r=MaikKlein a=MaikKlein

This is only a proof on concept right now. I'll finish it up next week.

What are your thoughts? Right now this requires a cast from `*const` to `*mut`.

Co-authored-by: Maik Klein <maikklein@googlemail.com>
2019-03-10 19:07:54 +00:00
Maik Klein
7d5d20017b Move external tests to lib.rs 2019-03-10 12:56:51 +01:00
Maik Klein
1744159dfd Move ptr chain tests out of the generator 2019-03-09 19:51:23 +01:00
Maik Klein
c8c8f69a7c next can contain a pointer chain and we need to correct insert it. 2019-03-09 19:51:23 +01:00
Maik Klein
bf29ebb39d Replace root create info with root_struct 2019-03-09 19:51:23 +01:00
Dzmitry Malyshau
7aa30a6544 Pass constant size arrays by reference 2019-03-08 00:06:01 -05:00
Maik Klein
88b1ac077d Rename root_extends 2019-03-04 10:22:38 +01:00
Maik Klein
04dbf20371 Transform the ptr chain sample into a test case 2019-03-04 09:56:53 +01:00
Maik Klein
215511f9cf Implement ExtendXXX for multiple root create infos
if there are more than 1
2019-03-03 18:29:37 +01:00
Maik Klein
38fe16f6c7 Use repr transparent for builders 2019-03-03 14:33:19 +01:00
Maik Klein
1e13b999d7 Add some documentation to push_next 2019-02-28 10:59:46 +01:00
Maik Klein
c66ae6b77e Add lifetime to push_next 2019-02-28 10:59:46 +01:00
Maik Klein
3de2ca9a22 Implement ExtendsXXX for all builders as well 2019-02-28 10:59:46 +01:00
Maik Klein
4f7ca180f6 Implement push_next 2019-02-28 10:59:46 +01:00
Maik Klein
c46a41e1d2 Replace ExtensionChain with a simple iterator 2019-02-28 10:59:46 +01:00