use smallvec::SmallVec;
use command_buffer::CommandAddError;
use command_buffer::cb::AddCommand;
use command_buffer::cb::UnsafeCommandBufferBuilder;
use command_buffer::pool::CommandPool;
use device::DeviceOwned;
use VulkanObject;
use VulkanPointers;
use vk;
pub struct CmdClearAttachments {
attachments: SmallVec<[vk::ClearAttachment; 8]>,
rects: SmallVec<[vk::ClearRect; 4]>,
}
unsafe impl<'a, P> AddCommand<&'a CmdClearAttachments> for UnsafeCommandBufferBuilder<P>
where P: CommandPool
{
type Out = UnsafeCommandBufferBuilder<P>;
#[inline]
fn add(self, command: &'a CmdClearAttachments) -> Result<Self::Out, CommandAddError> {
unsafe {
let vk = self.device().pointers();
let cmd = self.internal_object();
vk.CmdClearAttachments(cmd, command.attachments.len() as u32,
command.attachments.as_ptr(), command.rects.len() as u32,
command.rects.as_ptr());
}
Ok(self)
}
}