mirror of
https://github.com/italicsjenga/portability.git
synced 2024-11-26 08:51:31 +11:00
Merge #15
15: Export dummy vulkan functions to fix linking of lunarg API samples r=kvark a=msiglreith Export a lot more functions which are required for getting lunarg API samples to link (don't run yet as some functions are not implemented so far). + format everything with rustfmt-nightly
This commit is contained in:
commit
05c1d5387f
|
@ -1,4 +1,3 @@
|
|||
|
||||
use hal::{adapter, buffer, format, image, memory, window};
|
||||
|
||||
use std::mem;
|
||||
|
@ -117,8 +116,10 @@ fn map_swizzle_component(
|
|||
pub fn map_subresource_range(subresource: VkImageSubresourceRange) -> image::SubresourceRange {
|
||||
image::SubresourceRange {
|
||||
aspects: map_aspect(subresource.aspectMask),
|
||||
levels: subresource.baseMipLevel as _ .. (subresource.baseMipLevel+subresource.levelCount) as _,
|
||||
layers: subresource.baseArrayLayer as _ .. (subresource.baseArrayLayer+subresource.layerCount) as _,
|
||||
levels: subresource.baseMipLevel as _
|
||||
..(subresource.baseMipLevel + subresource.levelCount) as _,
|
||||
layers: subresource.baseArrayLayer as _
|
||||
..(subresource.baseArrayLayer + subresource.layerCount) as _,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,12 +152,8 @@ pub fn map_image_kind(
|
|||
assert!(!is_cube || array_layers % 6 == 0);
|
||||
|
||||
match ty {
|
||||
VkImageType::VK_IMAGE_TYPE_1D => {
|
||||
image::Kind::D1(extent.width as _)
|
||||
}
|
||||
VkImageType::VK_IMAGE_TYPE_1D => {
|
||||
image::Kind::D1Array(extent.width as _, array_layers as _)
|
||||
}
|
||||
VkImageType::VK_IMAGE_TYPE_1D => image::Kind::D1(extent.width as _),
|
||||
VkImageType::VK_IMAGE_TYPE_1D => image::Kind::D1Array(extent.width as _, array_layers as _),
|
||||
VkImageType::VK_IMAGE_TYPE_2D if array_layers == 1 => {
|
||||
image::Kind::D2(extent.width as _, extent.height as _, map_aa_mode(samples))
|
||||
}
|
||||
|
@ -166,14 +163,12 @@ pub fn map_image_kind(
|
|||
VkImageType::VK_IMAGE_TYPE_2D if is_cube => {
|
||||
image::Kind::CubeArray(extent.width as _, (array_layers / 6) as _)
|
||||
}
|
||||
VkImageType::VK_IMAGE_TYPE_2D => {
|
||||
image::Kind::D2Array(
|
||||
extent.width as _,
|
||||
extent.height as _,
|
||||
array_layers as _,
|
||||
map_aa_mode(samples),
|
||||
)
|
||||
}
|
||||
VkImageType::VK_IMAGE_TYPE_2D => image::Kind::D2Array(
|
||||
extent.width as _,
|
||||
extent.height as _,
|
||||
array_layers as _,
|
||||
map_aa_mode(samples),
|
||||
),
|
||||
VkImageType::VK_IMAGE_TYPE_3D => {
|
||||
image::Kind::D3(extent.width as _, extent.height as _, extent.depth as _)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use VK_NULL_HANDLE;
|
||||
use std::{fmt, ops};
|
||||
|
||||
|
||||
#[repr(C)]
|
||||
pub struct Handle<T>(*mut T);
|
||||
|
||||
|
@ -31,7 +30,7 @@ impl<T> Copy for Handle<T> {}
|
|||
impl<T> ops::Deref for Handle<T> {
|
||||
type Target = T;
|
||||
fn deref(&self) -> &T {
|
||||
unsafe { & *self.0 }
|
||||
unsafe { &*self.0 }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -22,8 +22,9 @@ macro_rules! proc_addr {
|
|||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn vk_icdGetInstanceProcAddr(
|
||||
instance: VkInstance, pName: *const ::std::os::raw::c_char,
|
||||
pub extern "C" fn vk_icdGetInstanceProcAddr(
|
||||
instance: VkInstance,
|
||||
pName: *const ::std::os::raw::c_char,
|
||||
) -> PFN_vkVoidFunction {
|
||||
let name = unsafe { CStr::from_ptr(pName) };
|
||||
let name = match name.to_str() {
|
||||
|
@ -38,7 +39,7 @@ pub extern fn vk_icdGetInstanceProcAddr(
|
|||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn vk_icdNegotiateLoaderICDInterfaceVersion(
|
||||
pub extern "C" fn vk_icdNegotiateLoaderICDInterfaceVersion(
|
||||
pSupportedVersion: *mut ::std::os::raw::c_uint,
|
||||
) -> VkResult {
|
||||
let supported_version = unsafe { &mut *pSupportedVersion };
|
||||
|
@ -50,9 +51,9 @@ pub extern fn vk_icdNegotiateLoaderICDInterfaceVersion(
|
|||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn vk_icdGetPhysicalDeviceProcAddr(
|
||||
instance: VkInstance, pName: *const ::std::os::raw::c_char,
|
||||
pub extern "C" fn vk_icdGetPhysicalDeviceProcAddr(
|
||||
instance: VkInstance,
|
||||
pName: *const ::std::os::raw::c_char,
|
||||
) -> PFN_vkVoidFunction {
|
||||
unimplemented!()
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue