crystal_api/
object.rs

1use std::sync::Arc;
2
3use crate::GpuSamplerSet;
4use crate::proxies::*;
5
6pub(crate) struct MeshBufferProxy {
7    pub(crate) index_size: usize,
8    pub(crate) vertices: Arc<dyn BufferProxy>,
9    pub(crate) indices: Arc<dyn BufferProxy>,
10}
11
12/// Unified object used in GPU operations
13pub struct Object {
14    pub(crate) pipeline: Arc<dyn PipelineProxy>,
15    pub(crate) mesh_buffer: Option<Arc<MeshBufferProxy>>,
16    pub(crate) sampler: Option<Arc<GpuSamplerSet>>,
17    pub(crate) groups: Option<[u32; 3]>,
18    pub(crate) index: u32,
19    pub(crate) array: u32,
20}
21
22unsafe impl Sync for Object {}
23unsafe impl Send for Object {}