Drop load()
functions from empty Fn
struct
s (#752)
These functions don't contribute anything and should be removed to clean up the `features` and `extensions` files, while now also not showing in the documentation anymore. The structs remain in place for associated constants but are replaced with true unit-like structs (no curly brackets anymore), and unneeded `unsafe impl Send/Sync` are removed as well. As these `load()` functions have been removed from the empty feature-levels on `Entry` and `Device` as well, rather than instantiating the unit structs and returning those the fields and `fp_vX_X()` getters have been removed entirely.
This commit is contained in:
parent
8b1151350e
commit
cf1c92e664
|
@ -36,6 +36,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- Removed `query_count` parameter from `get_query_pool_results()` in favour of `data.len()` (#644)
|
- Removed `query_count` parameter from `get_query_pool_results()` in favour of `data.len()` (#644)
|
||||||
- Removed misnamed, deprecated `debug_utils_set_object_name()` and `debug_utils_set_object_tag()` entirely, use `set_debug_utils_object_name()` and `set_debug_utils_object_tag()` instead (#661)
|
- Removed misnamed, deprecated `debug_utils_set_object_name()` and `debug_utils_set_object_tag()` entirely, use `set_debug_utils_object_name()` and `set_debug_utils_object_tag()` instead (#661)
|
||||||
- Removed `get_properties` helper from extension wrappers (and `ext::PhysicalDeviceDrm`). Directly call `get_physical_device_properties2()` with a possible chain of multiple structs instead (#728)
|
- Removed `get_properties` helper from extension wrappers (and `ext::PhysicalDeviceDrm`). Directly call `get_physical_device_properties2()` with a possible chain of multiple structs instead (#728)
|
||||||
|
- Removed `fn load()` from empty features and extensions (#752)
|
||||||
|
- Removed empty `entry_fn_1_2`/`entry_fn_1_3` and getters from `Entry`
|
||||||
|
- Removed empty `instance_fn_1_2:` and getters from `Instance`
|
||||||
|
|
||||||
## [0.37.2] - 2022-01-11
|
## [0.37.2] - 2022-01-11
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,6 @@ impl Device {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.3
|
/// Vulkan core 1.3
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Device {
|
impl Device {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_3(&self) -> &vk::DeviceFnV1_3 {
|
pub fn fp_v1_3(&self) -> &vk::DeviceFnV1_3 {
|
||||||
|
@ -531,7 +530,6 @@ impl Device {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.2
|
/// Vulkan core 1.2
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Device {
|
impl Device {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_2(&self) -> &vk::DeviceFnV1_2 {
|
pub fn fp_v1_2(&self) -> &vk::DeviceFnV1_2 {
|
||||||
|
@ -705,7 +703,6 @@ impl Device {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.1
|
/// Vulkan core 1.1
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Device {
|
impl Device {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_1(&self) -> &vk::DeviceFnV1_1 {
|
pub fn fp_v1_1(&self) -> &vk::DeviceFnV1_1 {
|
||||||
|
@ -952,7 +949,6 @@ impl Device {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.0
|
/// Vulkan core 1.0
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Device {
|
impl Device {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_0(&self) -> &vk::DeviceFnV1_0 {
|
pub fn fp_v1_0(&self) -> &vk::DeviceFnV1_0 {
|
||||||
|
|
|
@ -21,14 +21,11 @@ pub struct Entry {
|
||||||
static_fn: vk::StaticFn,
|
static_fn: vk::StaticFn,
|
||||||
entry_fn_1_0: vk::EntryFnV1_0,
|
entry_fn_1_0: vk::EntryFnV1_0,
|
||||||
entry_fn_1_1: vk::EntryFnV1_1,
|
entry_fn_1_1: vk::EntryFnV1_1,
|
||||||
entry_fn_1_2: vk::EntryFnV1_2,
|
|
||||||
entry_fn_1_3: vk::EntryFnV1_3,
|
|
||||||
#[cfg(feature = "loaded")]
|
#[cfg(feature = "loaded")]
|
||||||
_lib_guard: Option<Arc<Library>>,
|
_lib_guard: Option<Arc<Library>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.0
|
/// Vulkan core 1.0
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Entry {
|
impl Entry {
|
||||||
/// Load default Vulkan library for the current platform
|
/// Load default Vulkan library for the current platform
|
||||||
///
|
///
|
||||||
|
@ -151,15 +148,11 @@ impl Entry {
|
||||||
};
|
};
|
||||||
let entry_fn_1_0 = vk::EntryFnV1_0::load(load_fn);
|
let entry_fn_1_0 = vk::EntryFnV1_0::load(load_fn);
|
||||||
let entry_fn_1_1 = vk::EntryFnV1_1::load(load_fn);
|
let entry_fn_1_1 = vk::EntryFnV1_1::load(load_fn);
|
||||||
let entry_fn_1_2 = vk::EntryFnV1_2::load(load_fn);
|
|
||||||
let entry_fn_1_3 = vk::EntryFnV1_3::load(load_fn);
|
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
static_fn,
|
static_fn,
|
||||||
entry_fn_1_0,
|
entry_fn_1_0,
|
||||||
entry_fn_1_1,
|
entry_fn_1_1,
|
||||||
entry_fn_1_2,
|
|
||||||
entry_fn_1_3,
|
|
||||||
#[cfg(feature = "loaded")]
|
#[cfg(feature = "loaded")]
|
||||||
_lib_guard: None,
|
_lib_guard: None,
|
||||||
}
|
}
|
||||||
|
@ -273,7 +266,6 @@ impl Entry {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.1
|
/// Vulkan core 1.1
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Entry {
|
impl Entry {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_1(&self) -> &vk::EntryFnV1_1 {
|
pub fn fp_v1_1(&self) -> &vk::EntryFnV1_1 {
|
||||||
|
@ -294,24 +286,6 @@ impl Entry {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.2
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Entry {
|
|
||||||
#[inline]
|
|
||||||
pub fn fp_v1_2(&self) -> &vk::EntryFnV1_2 {
|
|
||||||
&self.entry_fn_1_2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Vulkan core 1.3
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Entry {
|
|
||||||
#[inline]
|
|
||||||
pub fn fp_v1_3(&self) -> &vk::EntryFnV1_3 {
|
|
||||||
&self.entry_fn_1_3
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "linked")]
|
#[cfg(feature = "linked")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "linked")))]
|
#[cfg_attr(docsrs, doc(cfg(feature = "linked")))]
|
||||||
impl Default for Entry {
|
impl Default for Entry {
|
||||||
|
|
|
@ -13,7 +13,6 @@ pub struct Instance {
|
||||||
|
|
||||||
pub(crate) instance_fn_1_0: vk::InstanceFnV1_0,
|
pub(crate) instance_fn_1_0: vk::InstanceFnV1_0,
|
||||||
pub(crate) instance_fn_1_1: vk::InstanceFnV1_1,
|
pub(crate) instance_fn_1_1: vk::InstanceFnV1_1,
|
||||||
pub(crate) instance_fn_1_2: vk::InstanceFnV1_2,
|
|
||||||
pub(crate) instance_fn_1_3: vk::InstanceFnV1_3,
|
pub(crate) instance_fn_1_3: vk::InstanceFnV1_3,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +27,6 @@ impl Instance {
|
||||||
|
|
||||||
instance_fn_1_0: vk::InstanceFnV1_0::load(load_fn),
|
instance_fn_1_0: vk::InstanceFnV1_0::load(load_fn),
|
||||||
instance_fn_1_1: vk::InstanceFnV1_1::load(load_fn),
|
instance_fn_1_1: vk::InstanceFnV1_1::load(load_fn),
|
||||||
instance_fn_1_2: vk::InstanceFnV1_2::load(load_fn),
|
|
||||||
instance_fn_1_3: vk::InstanceFnV1_3::load(load_fn),
|
instance_fn_1_3: vk::InstanceFnV1_3::load(load_fn),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +38,6 @@ impl Instance {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.3
|
/// Vulkan core 1.3
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Instance {
|
impl Instance {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_3(&self) -> &vk::InstanceFnV1_3 {
|
pub fn fp_v1_3(&self) -> &vk::InstanceFnV1_3 {
|
||||||
|
@ -84,17 +81,7 @@ impl Instance {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.2
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Instance {
|
|
||||||
#[inline]
|
|
||||||
pub fn fp_v1_2(&self) -> &vk::InstanceFnV1_2 {
|
|
||||||
&self.instance_fn_1_2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Vulkan core 1.1
|
/// Vulkan core 1.1
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Instance {
|
impl Instance {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_1(&self) -> &vk::InstanceFnV1_1 {
|
pub fn fp_v1_1(&self) -> &vk::InstanceFnV1_1 {
|
||||||
|
@ -325,7 +312,6 @@ impl Instance {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vulkan core 1.0
|
/// Vulkan core 1.0
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
impl Instance {
|
impl Instance {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fp_v1_0(&self) -> &vk::InstanceFnV1_0 {
|
pub fn fp_v1_0(&self) -> &vk::InstanceFnV1_0 {
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4296,29 +4296,9 @@ impl DeviceFnV1_1 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct EntryFnV1_2 {}
|
pub struct EntryFnV1_2;
|
||||||
unsafe impl Send for EntryFnV1_2 {}
|
|
||||||
unsafe impl Sync for EntryFnV1_2 {}
|
|
||||||
impl EntryFnV1_2 {
|
|
||||||
pub fn load<F>(mut _f: F) -> Self
|
|
||||||
where
|
|
||||||
F: FnMut(&::std::ffi::CStr) -> *const c_void,
|
|
||||||
{
|
|
||||||
Self {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct InstanceFnV1_2 {}
|
pub struct InstanceFnV1_2;
|
||||||
unsafe impl Send for InstanceFnV1_2 {}
|
|
||||||
unsafe impl Sync for InstanceFnV1_2 {}
|
|
||||||
impl InstanceFnV1_2 {
|
|
||||||
pub fn load<F>(mut _f: F) -> Self
|
|
||||||
where
|
|
||||||
F: FnMut(&::std::ffi::CStr) -> *const c_void,
|
|
||||||
{
|
|
||||||
Self {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct DeviceFnV1_2 {
|
pub struct DeviceFnV1_2 {
|
||||||
pub cmd_draw_indirect_count: crate::vk::PFN_vkCmdDrawIndirectCount,
|
pub cmd_draw_indirect_count: crate::vk::PFN_vkCmdDrawIndirectCount,
|
||||||
|
@ -4595,17 +4575,7 @@ impl DeviceFnV1_2 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct EntryFnV1_3 {}
|
pub struct EntryFnV1_3;
|
||||||
unsafe impl Send for EntryFnV1_3 {}
|
|
||||||
unsafe impl Sync for EntryFnV1_3 {}
|
|
||||||
impl EntryFnV1_3 {
|
|
||||||
pub fn load<F>(mut _f: F) -> Self
|
|
||||||
where
|
|
||||||
F: FnMut(&::std::ffi::CStr) -> *const c_void,
|
|
||||||
{
|
|
||||||
Self {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct InstanceFnV1_3 {
|
pub struct InstanceFnV1_3 {
|
||||||
pub get_physical_device_tool_properties: crate::vk::PFN_vkGetPhysicalDeviceToolProperties,
|
pub get_physical_device_tool_properties: crate::vk::PFN_vkGetPhysicalDeviceToolProperties,
|
||||||
|
|
|
@ -22,6 +22,7 @@ use std::{
|
||||||
borrow::Cow,
|
borrow::Cow,
|
||||||
collections::{BTreeMap, HashMap, HashSet},
|
collections::{BTreeMap, HashMap, HashSet},
|
||||||
fmt::Display,
|
fmt::Display,
|
||||||
|
ops::Not,
|
||||||
path::Path,
|
path::Path,
|
||||||
};
|
};
|
||||||
use syn::Ident;
|
use syn::Ident;
|
||||||
|
@ -1032,34 +1033,48 @@ fn generate_function_pointers<'a>(
|
||||||
.to_tokens(tokens)
|
.to_tokens(tokens)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let loaders = commands.iter().map(CommandToLoader);
|
||||||
|
|
||||||
|
let loader = commands.is_empty().not().then(|| {
|
||||||
|
quote! {
|
||||||
|
impl #ident {
|
||||||
|
pub fn load<F>(mut _f: F) -> Self
|
||||||
|
where F: FnMut(&::std::ffi::CStr) -> *const c_void
|
||||||
|
{
|
||||||
|
Self {
|
||||||
|
#(#loaders,)*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
let pfn_typedefs = commands
|
let pfn_typedefs = commands
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|pfn| pfn.type_needs_defining)
|
.filter(|pfn| pfn.type_needs_defining)
|
||||||
.map(CommandToType);
|
.map(CommandToType);
|
||||||
let members = commands.iter().map(CommandToMember);
|
let members = commands.iter().map(CommandToMember);
|
||||||
let loaders = commands.iter().map(CommandToLoader);
|
|
||||||
|
let struct_contents = if commands.is_empty() {
|
||||||
|
quote! { pub struct #ident; }
|
||||||
|
} else {
|
||||||
|
quote! {
|
||||||
|
pub struct #ident {
|
||||||
|
#(#members,)*
|
||||||
|
}
|
||||||
|
|
||||||
|
unsafe impl Send for #ident {}
|
||||||
|
unsafe impl Sync for #ident {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
#(#pfn_typedefs)*
|
#(#pfn_typedefs)*
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct #ident {
|
#struct_contents
|
||||||
#(#members,)*
|
|
||||||
}
|
|
||||||
|
|
||||||
unsafe impl Send for #ident {}
|
#loader
|
||||||
unsafe impl Sync for #ident {}
|
|
||||||
|
|
||||||
impl #ident {
|
|
||||||
pub fn load<F>(mut _f: F) -> Self
|
|
||||||
where F: FnMut(&::std::ffi::CStr) -> *const c_void
|
|
||||||
{
|
|
||||||
Self {
|
|
||||||
#(#loaders,)*
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub struct ExtensionConstant<'a> {
|
pub struct ExtensionConstant<'a> {
|
||||||
|
|
Loading…
Reference in a new issue