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::{VkShaderFloatControlsIndependence,RawVkShaderFloatControlsIndependence};
#[derive(Debug, Clone)]
pub struct VkPhysicalDeviceFloatControlsProperties {
pub denorm_behavior_independence: VkShaderFloatControlsIndependence,
pub rounding_mode_independence: VkShaderFloatControlsIndependence,
pub shader_signed_zero_inf_nan_preserve_float_16: bool,
pub shader_signed_zero_inf_nan_preserve_float_32: bool,
pub shader_signed_zero_inf_nan_preserve_float_64: bool,
pub shader_denorm_preserve_float_16: bool,
pub shader_denorm_preserve_float_32: bool,
pub shader_denorm_preserve_float_64: bool,
pub shader_denorm_flush_to_zero_float_16: bool,
pub shader_denorm_flush_to_zero_float_32: bool,
pub shader_denorm_flush_to_zero_float_64: bool,
pub shader_rounding_mode_rtefloat_16: bool,
pub shader_rounding_mode_rtefloat_32: bool,
pub shader_rounding_mode_rtefloat_64: bool,
pub shader_rounding_mode_rtzfloat_16: bool,
pub shader_rounding_mode_rtzfloat_32: bool,
pub shader_rounding_mode_rtzfloat_64: bool,
}
#[doc(hidden)]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RawVkPhysicalDeviceFloatControlsProperties {
pub s_type: RawVkStructureType,
pub next: *mut c_void,
pub denorm_behavior_independence: RawVkShaderFloatControlsIndependence,
pub rounding_mode_independence: RawVkShaderFloatControlsIndependence,
pub shader_signed_zero_inf_nan_preserve_float_16: u32,
pub shader_signed_zero_inf_nan_preserve_float_32: u32,
pub shader_signed_zero_inf_nan_preserve_float_64: u32,
pub shader_denorm_preserve_float_16: u32,
pub shader_denorm_preserve_float_32: u32,
pub shader_denorm_preserve_float_64: u32,
pub shader_denorm_flush_to_zero_float_16: u32,
pub shader_denorm_flush_to_zero_float_32: u32,
pub shader_denorm_flush_to_zero_float_64: u32,
pub shader_rounding_mode_rtefloat_16: u32,
pub shader_rounding_mode_rtefloat_32: u32,
pub shader_rounding_mode_rtefloat_64: u32,
pub shader_rounding_mode_rtzfloat_16: u32,
pub shader_rounding_mode_rtzfloat_32: u32,
pub shader_rounding_mode_rtzfloat_64: u32,
}
impl VkWrappedType<RawVkPhysicalDeviceFloatControlsProperties> for VkPhysicalDeviceFloatControlsProperties {
fn vk_to_raw(src: &VkPhysicalDeviceFloatControlsProperties, dst: &mut RawVkPhysicalDeviceFloatControlsProperties) {
dst.s_type = vk_to_raw_value(&VkStructureType::PhysicalDeviceFloatControlsProperties);
dst.next = ptr::null_mut();
dst.denorm_behavior_independence = vk_to_raw_value(&src.denorm_behavior_independence);
dst.rounding_mode_independence = vk_to_raw_value(&src.rounding_mode_independence);
dst.shader_signed_zero_inf_nan_preserve_float_16 = vk_to_raw_value(&src.shader_signed_zero_inf_nan_preserve_float_16);
dst.shader_signed_zero_inf_nan_preserve_float_32 = vk_to_raw_value(&src.shader_signed_zero_inf_nan_preserve_float_32);
dst.shader_signed_zero_inf_nan_preserve_float_64 = vk_to_raw_value(&src.shader_signed_zero_inf_nan_preserve_float_64);
dst.shader_denorm_preserve_float_16 = vk_to_raw_value(&src.shader_denorm_preserve_float_16);
dst.shader_denorm_preserve_float_32 = vk_to_raw_value(&src.shader_denorm_preserve_float_32);
dst.shader_denorm_preserve_float_64 = vk_to_raw_value(&src.shader_denorm_preserve_float_64);
dst.shader_denorm_flush_to_zero_float_16 = vk_to_raw_value(&src.shader_denorm_flush_to_zero_float_16);
dst.shader_denorm_flush_to_zero_float_32 = vk_to_raw_value(&src.shader_denorm_flush_to_zero_float_32);
dst.shader_denorm_flush_to_zero_float_64 = vk_to_raw_value(&src.shader_denorm_flush_to_zero_float_64);
dst.shader_rounding_mode_rtefloat_16 = vk_to_raw_value(&src.shader_rounding_mode_rtefloat_16);
dst.shader_rounding_mode_rtefloat_32 = vk_to_raw_value(&src.shader_rounding_mode_rtefloat_32);
dst.shader_rounding_mode_rtefloat_64 = vk_to_raw_value(&src.shader_rounding_mode_rtefloat_64);
dst.shader_rounding_mode_rtzfloat_16 = vk_to_raw_value(&src.shader_rounding_mode_rtzfloat_16);
dst.shader_rounding_mode_rtzfloat_32 = vk_to_raw_value(&src.shader_rounding_mode_rtzfloat_32);
dst.shader_rounding_mode_rtzfloat_64 = vk_to_raw_value(&src.shader_rounding_mode_rtzfloat_64);
}
}
impl VkRawType<VkPhysicalDeviceFloatControlsProperties> for RawVkPhysicalDeviceFloatControlsProperties {
fn vk_to_wrapped(src: &RawVkPhysicalDeviceFloatControlsProperties) -> VkPhysicalDeviceFloatControlsProperties {
VkPhysicalDeviceFloatControlsProperties {
denorm_behavior_independence: RawVkShaderFloatControlsIndependence::vk_to_wrapped(&src.denorm_behavior_independence),
rounding_mode_independence: RawVkShaderFloatControlsIndependence::vk_to_wrapped(&src.rounding_mode_independence),
shader_signed_zero_inf_nan_preserve_float_16: u32::vk_to_wrapped(&src.shader_signed_zero_inf_nan_preserve_float_16),
shader_signed_zero_inf_nan_preserve_float_32: u32::vk_to_wrapped(&src.shader_signed_zero_inf_nan_preserve_float_32),
shader_signed_zero_inf_nan_preserve_float_64: u32::vk_to_wrapped(&src.shader_signed_zero_inf_nan_preserve_float_64),
shader_denorm_preserve_float_16: u32::vk_to_wrapped(&src.shader_denorm_preserve_float_16),
shader_denorm_preserve_float_32: u32::vk_to_wrapped(&src.shader_denorm_preserve_float_32),
shader_denorm_preserve_float_64: u32::vk_to_wrapped(&src.shader_denorm_preserve_float_64),
shader_denorm_flush_to_zero_float_16: u32::vk_to_wrapped(&src.shader_denorm_flush_to_zero_float_16),
shader_denorm_flush_to_zero_float_32: u32::vk_to_wrapped(&src.shader_denorm_flush_to_zero_float_32),
shader_denorm_flush_to_zero_float_64: u32::vk_to_wrapped(&src.shader_denorm_flush_to_zero_float_64),
shader_rounding_mode_rtefloat_16: u32::vk_to_wrapped(&src.shader_rounding_mode_rtefloat_16),
shader_rounding_mode_rtefloat_32: u32::vk_to_wrapped(&src.shader_rounding_mode_rtefloat_32),
shader_rounding_mode_rtefloat_64: u32::vk_to_wrapped(&src.shader_rounding_mode_rtefloat_64),
shader_rounding_mode_rtzfloat_16: u32::vk_to_wrapped(&src.shader_rounding_mode_rtzfloat_16),
shader_rounding_mode_rtzfloat_32: u32::vk_to_wrapped(&src.shader_rounding_mode_rtzfloat_32),
shader_rounding_mode_rtzfloat_64: u32::vk_to_wrapped(&src.shader_rounding_mode_rtzfloat_64),
}
}
}
impl Default for VkPhysicalDeviceFloatControlsProperties {
fn default() -> VkPhysicalDeviceFloatControlsProperties {
VkPhysicalDeviceFloatControlsProperties {
denorm_behavior_independence: Default::default(),
rounding_mode_independence: Default::default(),
shader_signed_zero_inf_nan_preserve_float_16: false,
shader_signed_zero_inf_nan_preserve_float_32: false,
shader_signed_zero_inf_nan_preserve_float_64: false,
shader_denorm_preserve_float_16: false,
shader_denorm_preserve_float_32: false,
shader_denorm_preserve_float_64: false,
shader_denorm_flush_to_zero_float_16: false,
shader_denorm_flush_to_zero_float_32: false,
shader_denorm_flush_to_zero_float_64: false,
shader_rounding_mode_rtefloat_16: false,
shader_rounding_mode_rtefloat_32: false,
shader_rounding_mode_rtefloat_64: false,
shader_rounding_mode_rtzfloat_16: false,
shader_rounding_mode_rtzfloat_32: false,
shader_rounding_mode_rtzfloat_64: false,
}
}
}
impl VkSetup for VkPhysicalDeviceFloatControlsProperties {
fn vk_setup(&mut self, fn_table: *mut VkFunctionTable) {
}
}
impl VkFree for RawVkPhysicalDeviceFloatControlsProperties {
fn vk_free(&self) {
}
}