use std::os::raw::c_char;
use std::ops::Deref;
use std::ptr;
use std::cmp;
use std::mem;
use utils::c_bindings::*;
use utils::vk_convert::*;
use utils::vk_null::*;
use utils::vk_ptr::*;
use utils::vk_traits::*;
use vulkan::vk::*;
use vulkan::vk::{VkStructureType,RawVkStructureType};
use vulkan::vk::{VkDescriptorSet,RawVkDescriptorSet};
#[derive(Debug, Clone)]
pub struct VkCopyDescriptorSet {
pub src_set: VkDescriptorSet,
pub src_binding: usize,
pub src_array_element: usize,
pub dst_set: VkDescriptorSet,
pub dst_binding: usize,
pub dst_array_element: usize,
pub descriptor_count: usize,
}
#[doc(hidden)]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RawVkCopyDescriptorSet {
pub s_type: RawVkStructureType,
pub next: *mut c_void,
pub src_set: RawVkDescriptorSet,
pub src_binding: u32,
pub src_array_element: u32,
pub dst_set: RawVkDescriptorSet,
pub dst_binding: u32,
pub dst_array_element: u32,
pub descriptor_count: u32,
}
impl VkWrappedType<RawVkCopyDescriptorSet> for VkCopyDescriptorSet {
fn vk_to_raw(src: &VkCopyDescriptorSet, dst: &mut RawVkCopyDescriptorSet) {
dst.s_type = vk_to_raw_value(&VkStructureType::CopyDescriptorSet);
dst.next = ptr::null_mut();
dst.src_set = vk_to_raw_value(&src.src_set);
dst.src_binding = vk_to_raw_value(&src.src_binding);
dst.src_array_element = vk_to_raw_value(&src.src_array_element);
dst.dst_set = vk_to_raw_value(&src.dst_set);
dst.dst_binding = vk_to_raw_value(&src.dst_binding);
dst.dst_array_element = vk_to_raw_value(&src.dst_array_element);
dst.descriptor_count = vk_to_raw_value(&src.descriptor_count);
}
}
impl VkRawType<VkCopyDescriptorSet> for RawVkCopyDescriptorSet {
fn vk_to_wrapped(src: &RawVkCopyDescriptorSet) -> VkCopyDescriptorSet {
VkCopyDescriptorSet {
src_set: RawVkDescriptorSet::vk_to_wrapped(&src.src_set),
src_binding: u32::vk_to_wrapped(&src.src_binding),
src_array_element: u32::vk_to_wrapped(&src.src_array_element),
dst_set: RawVkDescriptorSet::vk_to_wrapped(&src.dst_set),
dst_binding: u32::vk_to_wrapped(&src.dst_binding),
dst_array_element: u32::vk_to_wrapped(&src.dst_array_element),
descriptor_count: u32::vk_to_wrapped(&src.descriptor_count),
}
}
}
impl Default for VkCopyDescriptorSet {
fn default() -> VkCopyDescriptorSet {
VkCopyDescriptorSet {
src_set: Default::default(),
src_binding: 0,
src_array_element: 0,
dst_set: Default::default(),
dst_binding: 0,
dst_array_element: 0,
descriptor_count: 0,
}
}
}
impl VkSetup for VkCopyDescriptorSet {
fn vk_setup(&mut self, fn_table: *mut VkFunctionTable) {
VkSetup::vk_setup(&mut self.src_set, fn_table);
VkSetup::vk_setup(&mut self.dst_set, fn_table);
}
}
impl VkFree for RawVkCopyDescriptorSet {
fn vk_free(&self) {
}
}