Struct rutabaga_gfx::cross_domain::CrossDomainContext
source · struct CrossDomainContext {
channels: Option<Vec<RutabagaChannel>>,
gralloc: Arc<Mutex<RutabagaGralloc>>,
state: Option<Arc<CrossDomainState>>,
context_resources: Arc<Mutex<BTreeMap<u32, CrossDomainResource>>>,
item_state: Arc<Mutex<CrossDomainItems>>,
fence_handler: RutabagaFenceHandler,
worker_thread: Option<JoinHandle<RutabagaResult<()>>>,
resample_evt: Option<Event>,
kill_evt: Option<Event>,
}
Fields§
§channels: Option<Vec<RutabagaChannel>>
§gralloc: Arc<Mutex<RutabagaGralloc>>
§state: Option<Arc<CrossDomainState>>
§context_resources: Arc<Mutex<BTreeMap<u32, CrossDomainResource>>>
§item_state: Arc<Mutex<CrossDomainItems>>
§fence_handler: RutabagaFenceHandler
§worker_thread: Option<JoinHandle<RutabagaResult<()>>>
§resample_evt: Option<Event>
§kill_evt: Option<Event>
Implementations§
source§impl CrossDomainContext
impl CrossDomainContext
fn get_connection(&mut self, cmd_init: &CrossDomainInit) -> RutabagaResult<Tube>
fn initialize(&mut self, cmd_init: &CrossDomainInit) -> RutabagaResult<()>
fn get_image_requirements( &mut self, cmd_get_reqs: &CrossDomainGetImageRequirements ) -> RutabagaResult<()>
fn send( &mut self, cmd_send: &CrossDomainSendReceive, opaque_data: &[u8] ) -> RutabagaResult<()>
fn write( &self, cmd_write: &CrossDomainReadWrite, opaque_data: &[u8] ) -> RutabagaResult<()>
Trait Implementations§
source§impl Drop for CrossDomainContext
impl Drop for CrossDomainContext
source§impl RutabagaContext for CrossDomainContext
impl RutabagaContext for CrossDomainContext
source§fn context_create_blob(
&mut self,
resource_id: u32,
resource_create_blob: ResourceCreateBlob,
handle_opt: Option<RutabagaHandle>
) -> RutabagaResult<RutabagaResource>
fn context_create_blob( &mut self, resource_id: u32, resource_create_blob: ResourceCreateBlob, handle_opt: Option<RutabagaHandle> ) -> RutabagaResult<RutabagaResource>
Implementations must return a RutabagaResource given the
resource_create_blob
parameters.source§fn submit_cmd(
&mut self,
commands: &mut [u8],
_fence_ids: &[u64],
_shareable_fences: Vec<RutabagaHandle>
) -> RutabagaResult<()>
fn submit_cmd( &mut self, commands: &mut [u8], _fence_ids: &[u64], _shareable_fences: Vec<RutabagaHandle> ) -> RutabagaResult<()>
Implementations must handle the context-specific command stream.
source§fn attach(&mut self, resource: &mut RutabagaResource)
fn attach(&mut self, resource: &mut RutabagaResource)
Implementations may use
resource
in this context’s command stream.source§fn detach(&mut self, resource: &RutabagaResource)
fn detach(&mut self, resource: &RutabagaResource)
Implementations must stop using
resource
in this context’s command stream.source§fn context_create_fence(
&mut self,
fence: RutabagaFence
) -> RutabagaResult<Option<RutabagaHandle>>
fn context_create_fence( &mut self, fence: RutabagaFence ) -> RutabagaResult<Option<RutabagaHandle>>
Implementations must create a fence on specified
ring_idx
in fence
. This
allows for multiple synchronizations timelines per RutabagaContext. Read moresource§fn component_type(&self) -> RutabagaComponentType
fn component_type(&self) -> RutabagaComponentType
Implementations must return the component type associated with the context.
Auto Trait Implementations§
impl !RefUnwindSafe for CrossDomainContext
impl Send for CrossDomainContext
impl Sync for CrossDomainContext
impl Unpin for CrossDomainContext
impl !UnwindSafe for CrossDomainContext
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more