mirror of
https://github.com/vulkano-rs/vulkano.git
synced 2024-11-21 22:34:43 +00:00
Publish vulkano-macros (#2175)
* Publish vulkano-macros * Document `vulkano-macros` * Make macros dependency optional * Document `macros` feature * Fix outdated docs * Derp
This commit is contained in:
parent
1f31e85c5e
commit
096d3bc660
@ -2,7 +2,8 @@
|
|||||||
members = [
|
members = [
|
||||||
"examples",
|
"examples",
|
||||||
"vulkano",
|
"vulkano",
|
||||||
|
"vulkano-macros",
|
||||||
"vulkano-shaders",
|
"vulkano-shaders",
|
||||||
"vulkano-win",
|
|
||||||
"vulkano-util",
|
"vulkano-util",
|
||||||
|
"vulkano-win",
|
||||||
]
|
]
|
||||||
|
@ -2,13 +2,16 @@
|
|||||||
name = "vulkano-macros"
|
name = "vulkano-macros"
|
||||||
version = "0.33.0"
|
version = "0.33.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
|
authors = [
|
||||||
|
"Pierre Krieger <pierre.krieger1708@gmail.com>",
|
||||||
|
"The vulkano contributors",
|
||||||
|
]
|
||||||
repository = "https://github.com/vulkano-rs/vulkano"
|
repository = "https://github.com/vulkano-rs/vulkano"
|
||||||
description = "Macros used by Vulkano"
|
description = "Macros used by Vulkano"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
documentation = "https://docs.rs/vulkano"
|
documentation = "https://docs.rs/vulkano"
|
||||||
homepage = "https://vulkano.rs"
|
homepage = "https://vulkano.rs"
|
||||||
publish = false
|
publish = true
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
proc-macro = true
|
proc-macro = true
|
||||||
@ -20,4 +23,4 @@ proc-macro2 = "1.0"
|
|||||||
proc-macro-crate = "1.2"
|
proc-macro-crate = "1.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
vulkano = { path = ".." }
|
vulkano = { path = "../vulkano" }
|
@ -7,6 +7,10 @@
|
|||||||
// notice may not be copied, modified, or distributed except
|
// notice may not be copied, modified, or distributed except
|
||||||
// according to those terms.
|
// according to those terms.
|
||||||
|
|
||||||
|
//! Macros for [`vulkano`].
|
||||||
|
//!
|
||||||
|
//! [`vulkano`]: https://crates.io/crates/vulkano
|
||||||
|
|
||||||
use proc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
use proc_macro_crate::{crate_name, FoundCrate};
|
use proc_macro_crate::{crate_name, FoundCrate};
|
||||||
use syn::{parse_macro_input, DeriveInput, Error};
|
use syn::{parse_macro_input, DeriveInput, Error};
|
||||||
@ -14,6 +18,9 @@ use syn::{parse_macro_input, DeriveInput, Error};
|
|||||||
mod derive_buffer_contents;
|
mod derive_buffer_contents;
|
||||||
mod derive_vertex;
|
mod derive_vertex;
|
||||||
|
|
||||||
|
/// Derives the [`Vertex`] trait.
|
||||||
|
///
|
||||||
|
/// [`Vertex`]: https://docs.rs/vulkano/latest/vulkano/pipeline/graphics/vertex_input/trait.Vertex.html
|
||||||
#[proc_macro_derive(Vertex, attributes(name, format))]
|
#[proc_macro_derive(Vertex, attributes(name, format))]
|
||||||
pub fn derive_vertex(input: TokenStream) -> TokenStream {
|
pub fn derive_vertex(input: TokenStream) -> TokenStream {
|
||||||
let ast = parse_macro_input!(input as DeriveInput);
|
let ast = parse_macro_input!(input as DeriveInput);
|
||||||
@ -23,6 +30,9 @@ pub fn derive_vertex(input: TokenStream) -> TokenStream {
|
|||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Derives the [`BufferContents`] trait.
|
||||||
|
///
|
||||||
|
/// [`BufferContents`]: https://docs.rs/vulkano/latest/vulkano/buffer/trait.BufferContents.html
|
||||||
#[proc_macro_derive(BufferContents)]
|
#[proc_macro_derive(BufferContents)]
|
||||||
pub fn derive_buffer_contents(input: TokenStream) -> TokenStream {
|
pub fn derive_buffer_contents(input: TokenStream) -> TokenStream {
|
||||||
let ast = parse_macro_input!(input as DeriveInput);
|
let ast = parse_macro_input!(input as DeriveInput);
|
@ -2,7 +2,10 @@
|
|||||||
name = "vulkano-shaders"
|
name = "vulkano-shaders"
|
||||||
version = "0.33.0"
|
version = "0.33.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
|
authors = [
|
||||||
|
"Pierre Krieger <pierre.krieger1708@gmail.com>",
|
||||||
|
"The vulkano contributors",
|
||||||
|
]
|
||||||
repository = "https://github.com/vulkano-rs/vulkano"
|
repository = "https://github.com/vulkano-rs/vulkano"
|
||||||
description = "Shaders rust code generation macro"
|
description = "Shaders rust code generation macro"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
@ -21,7 +24,7 @@ proc-macro2 = "1.0"
|
|||||||
quote = "1.0"
|
quote = "1.0"
|
||||||
shaderc = "0.8"
|
shaderc = "0.8"
|
||||||
syn = { version = "1.0", features = ["full", "extra-traits"] }
|
syn = { version = "1.0", features = ["full", "extra-traits"] }
|
||||||
vulkano = { version = "0.33.0", path = "../vulkano" }
|
vulkano = { version = "0.33.0", path = "../vulkano", default-features = false }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
shaderc-build-from-source = ["shaderc/build-from-source"]
|
shaderc-build-from-source = ["shaderc/build-from-source"]
|
||||||
|
@ -13,6 +13,6 @@ categories = ["rendering::graphics-api"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ahash = "0.8"
|
ahash = "0.8"
|
||||||
vulkano = { version = "0.33.0", path = "../vulkano" }
|
vulkano = { version = "0.33.0", path = "../vulkano", default-features = false }
|
||||||
vulkano-win = { version = "0.33.0", path = "../vulkano-win" }
|
vulkano-win = { version = "0.33.0", path = "../vulkano-win" }
|
||||||
winit = { version = "0.28" }
|
winit = { version = "0.28" }
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
name = "vulkano-win"
|
name = "vulkano-win"
|
||||||
version = "0.33.0"
|
version = "0.33.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
|
authors = [
|
||||||
|
"Pierre Krieger <pierre.krieger1708@gmail.com>",
|
||||||
|
"The vulkano contributors",
|
||||||
|
]
|
||||||
repository = "https://github.com/vulkano-rs/vulkano"
|
repository = "https://github.com/vulkano-rs/vulkano"
|
||||||
description = "Link between vulkano and winit"
|
description = "Link between vulkano and winit"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
@ -20,7 +23,7 @@ winit_ = ["dep:winit", "dep:objc", "dep:core-graphics-types"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
raw-window-handle = { version = "0.5", optional = true }
|
raw-window-handle = { version = "0.5", optional = true }
|
||||||
vulkano = { version = "0.33.0", path = "../vulkano" }
|
vulkano = { version = "0.33.0", path = "../vulkano", default-features = false }
|
||||||
winit = { version = "0.28", optional = true }
|
winit = { version = "0.28", optional = true }
|
||||||
|
|
||||||
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
|
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
//! # Cargo features
|
//! # Cargo features
|
||||||
//!
|
//!
|
||||||
//! | Feature | Description |
|
//! | Feature | Description |
|
||||||
//! |----------------------|----------------------------------------------------------------------------|
|
//! |----------------------|---------------------------------------------------------------------------|
|
||||||
//! | `raw_window_handle_` | Include support for the [`raw_window_handle`] library. Enabled by default. |
|
//! | `raw_window_handle` | Include support for the [`raw_window_handle`] library. Enabled by default. |
|
||||||
//! | `winit_` | Include support for the [`winit`] library. Enabled by default. |
|
//! | `winit` | Include support for the [`winit`] library. Enabled by default. |
|
||||||
//!
|
//!
|
||||||
//! [`raw_window_handle`]: https://crates.io/crates/raw_window_handle
|
//! [`raw_window_handle`]: https://crates.io/crates/raw_window_handle
|
||||||
//! [`winit`]: https://crates.io/crates/winit
|
//! [`winit`]: https://crates.io/crates/winit
|
||||||
|
@ -30,7 +30,7 @@ parking_lot = { version = "0.12", features = ["send_guard"] }
|
|||||||
serde = { version = "1.0", optional = true }
|
serde = { version = "1.0", optional = true }
|
||||||
smallvec = "1.8"
|
smallvec = "1.8"
|
||||||
thread_local = "1.1"
|
thread_local = "1.1"
|
||||||
vulkano-macros = { path = "macros", version = "0.33.0" }
|
vulkano-macros = { path = "../vulkano-macros", version = "0.33.0", optional = true }
|
||||||
|
|
||||||
[target.'cfg(target_os = "ios")'.dependencies]
|
[target.'cfg(target_os = "ios")'.dependencies]
|
||||||
objc = "0.2.5"
|
objc = "0.2.5"
|
||||||
@ -53,4 +53,6 @@ cgmath = "0.18"
|
|||||||
nalgebra = "0.32"
|
nalgebra = "0.32"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
default = ["macros"]
|
||||||
|
macros = ["vulkano-macros"]
|
||||||
document_unchecked = []
|
document_unchecked = []
|
||||||
|
@ -36,6 +36,7 @@ use std::{
|
|||||||
thread,
|
thread,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#[cfg(feature = "macros")]
|
||||||
pub use vulkano_macros::BufferContents;
|
pub use vulkano_macros::BufferContents;
|
||||||
|
|
||||||
/// A subpart of a buffer.
|
/// A subpart of a buffer.
|
||||||
|
@ -97,13 +97,11 @@
|
|||||||
//! # Cargo features
|
//! # Cargo features
|
||||||
//!
|
//!
|
||||||
//! | Feature | Description |
|
//! | Feature | Description |
|
||||||
//! |----------------------|-------------------------------------------------------------------------------|
|
//! |----------------------|---------------------------------------------------------------||
|
||||||
|
//! | `macros` | Include reexports from [`vulkano-macros`]. Enabled by default. |
|
||||||
//! | `document_unchecked` | Include `_unchecked` functions in the generated documentation. |
|
//! | `document_unchecked` | Include `_unchecked` functions in the generated documentation. |
|
||||||
//! | `serde` | Enables (de)serialization of certain types using [`serde`]. |
|
//! | `serde` | Enables (de)serialization of certain types using [`serde`]. |
|
||||||
//!
|
//!
|
||||||
//! [`cgmath`]: https://crates.io/crates/cgmath
|
|
||||||
//! [`nalgebra`]: https://crates.io/crates/nalgebra
|
|
||||||
//! [`serde`]: https://crates.io/crates/serde
|
|
||||||
//! [`VulkanLibrary`]: crate::VulkanLibrary
|
//! [`VulkanLibrary`]: crate::VulkanLibrary
|
||||||
//! [`Instance`]: crate::instance::Instance
|
//! [`Instance`]: crate::instance::Instance
|
||||||
//! [`Surface`]: crate::swapchain::Surface
|
//! [`Surface`]: crate::swapchain::Surface
|
||||||
@ -125,6 +123,8 @@
|
|||||||
//! [`PipelineLayout`]: crate::pipeline::layout
|
//! [`PipelineLayout`]: crate::pipeline::layout
|
||||||
//! [`RenderPass`]: crate::render_pass::RenderPass
|
//! [`RenderPass`]: crate::render_pass::RenderPass
|
||||||
//! [`Framebuffer`]: crate::render_pass::Framebuffer
|
//! [`Framebuffer`]: crate::render_pass::Framebuffer
|
||||||
|
//! [`vulkano-macros`]: vulkano_macros
|
||||||
|
//! [`serde`]: https://crates.io/crates/serde
|
||||||
|
|
||||||
//#![warn(missing_docs)] // TODO: activate
|
//#![warn(missing_docs)] // TODO: activate
|
||||||
#![warn(
|
#![warn(
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
use super::VertexInputRate;
|
use super::VertexInputRate;
|
||||||
use crate::{buffer::BufferContents, format::Format};
|
use crate::{buffer::BufferContents, format::Format};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
#[cfg(feature = "macros")]
|
||||||
pub use vulkano_macros::Vertex;
|
pub use vulkano_macros::Vertex;
|
||||||
|
|
||||||
/// Describes an individual `Vertex`. In other words a collection of attributes that can be read
|
/// Describes an individual `Vertex`. In other words a collection of attributes that can be read
|
||||||
|
Loading…
Reference in New Issue
Block a user