use crate::MethodError;
use crate::d3d9::*;
use std::ops::*;
pub struct SafeDevice {
device: Device,
caps: Caps,
}
impl SafeDevice {
pub fn new(device: Device) -> Result<Self, MethodError> {
let caps = device.get_device_caps()?;
for t in 0 .. caps.MaxSimultaneousTextures {
unsafe { device.set_texture(t, None) }?;
}
Ok(Self { device, caps })
}
pub(crate) fn device(&self) -> &Device { &self.device }
pub(crate) fn caps(&self) -> &Caps { &self.caps }
}
impl Deref for SafeDevice {
type Target = Device;
fn deref(&self) -> &Self::Target { self.device() }
}