cobin 0.1.1

Minimalistic bindings for Metal and related Cocoa frameworks.
Documentation
use crate::{
  obj::Object,
  PrivateMarker,
  foundation::NSArray,
  runtime::NSObjectBase,
  metal::*
};

pub struct MTLPrimitiveAccelerationStructureDescriptor(PrivateMarker);

impl Object for MTLPrimitiveAccelerationStructureDescriptor {}
unsafe impl objc::Message for MTLPrimitiveAccelerationStructureDescriptor {}

impl NSObjectBase for MTLPrimitiveAccelerationStructureDescriptor {
  fn class_name() -> &'static str { "MTLPrimitiveAccelerationStructureDescriptor" }
}

impl MTLPrimitiveAccelerationStructureDescriptor {
  pub unsafe fn descriptor() -> *mut Self {
    let cls = Self::get_class();
    msg_send![cls, descriptor]
  }

  pub unsafe fn geometry_descriptors(&self) -> *mut NSArray<*mut MTLAccelerationStructureGeometryDescriptor> {
    msg_send![self, geometryDescriptors]
  }

  pub unsafe fn set_geometry_descriptors(&mut self, descriptors: *mut NSArray<*mut MTLAccelerationStructureGeometryDescriptor>) {
    msg_send![self, setGeometryDescriptors:descriptors]
  }
}

impl MTLAccelerationStructureDescriptorBase for MTLPrimitiveAccelerationStructureDescriptor { }