cobin 0.1.1

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

pub struct MTLInstanceAccelerationStructureDescriptor(PrivateMarker);

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

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

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

  pub unsafe fn set_instanced_acceleration_structures(&mut self, structures: *mut NSArray<*mut MTLAccelerationStructure>) {
    msg_send![self, setInstancedAccelerationStructures:structures]
  }

  pub unsafe fn set_instance_descriptor_buffer(&mut self, buffer: *mut MTLBuffer) {
    msg_send![self, setInstanceDescriptorBuffer:buffer]
  }

  pub unsafe fn set_instance_count(&mut self, count: NSUInteger) {
    msg_send![self, setInstanceCount:count]
  }

  pub unsafe fn set_instance_descriptor_buffer_offset(&mut self, offset: NSUInteger) {
    msg_send![self, setInstanceDescriptorBufferOffset:offset]
  }

  pub unsafe fn set_instance_descriptor_stride(&mut self, stride: NSUInteger) {
    msg_send![self, setInstanceDescriptorStride:stride]
  }
}

impl MTLAccelerationStructureDescriptorBase for MTLInstanceAccelerationStructureDescriptor { }