use super::*;
#[derive(Data, Debug)]
pub struct WebGpuRayTraceBackend {
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) context: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) device: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) queue: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) layout: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) scene_buffer: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) frame_buffer: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) bind_group: JsValue,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) pipeline: JsValue,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) scene_capacity: u32,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) frame_capacity: u32,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) storage_binding_limit: u32,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) buffer_size_limit: u32,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) texture_dimension_limit: u32,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) failure: Rc<RefCell<Option<String>>>,
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) error_listener: Option<JsValue>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) released: bool,
}