pub struct VideoTextureManager { /* private fields */ }Expand description
Manages video textures for multiple streams.
This manager tracks active video streams and their associated GPU textures. It provides methods to update textures with new frame data and retrieve cached textures for rendering.
§Example
use canvas_renderer::video::{VideoTextureManager, VideoFrameData};
let mut manager = VideoTextureManager::new();
// Update a video stream with new frame data
let frame = VideoFrameData::placeholder(640, 480).expect("valid dimensions");
manager.update_texture("stream-1", &frame);
// Check if texture exists
if manager.has_texture("stream-1") {
// Render the video element
}Implementations§
Source§impl VideoTextureManager
impl VideoTextureManager
Sourcepub fn update_texture(&mut self, stream_id: &str, frame: &VideoFrameData)
pub fn update_texture(&mut self, stream_id: &str, frame: &VideoFrameData)
Update or create a video texture for a stream.
This method records the texture metadata. The actual GPU texture upload is handled by the wgpu backend using the frame data.
Sourcepub fn get_texture(&self, stream_id: &str) -> Option<&VideoTextureEntry>
pub fn get_texture(&self, stream_id: &str) -> Option<&VideoTextureEntry>
Get texture metadata for a stream.
Sourcepub fn has_texture(&self, stream_id: &str) -> bool
pub fn has_texture(&self, stream_id: &str) -> bool
Check if a texture exists for a stream.
Sourcepub fn remove_texture(&mut self, stream_id: &str) -> bool
pub fn remove_texture(&mut self, stream_id: &str) -> bool
Remove a video texture from the cache.
Call this when a video stream ends or the element is removed.
Sourcepub fn texture_count(&self) -> usize
pub fn texture_count(&self) -> usize
Get the number of cached video textures.
Sourcepub fn stream_ids(&self) -> impl Iterator<Item = &str>
pub fn stream_ids(&self) -> impl Iterator<Item = &str>
Get an iterator over all stream IDs.
Sourcepub fn frame_counter(&self) -> u64
pub fn frame_counter(&self) -> u64
Get the current frame counter.
Trait Implementations§
Source§impl Debug for VideoTextureManager
impl Debug for VideoTextureManager
Source§impl Default for VideoTextureManager
impl Default for VideoTextureManager
Source§fn default() -> VideoTextureManager
fn default() -> VideoTextureManager
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for VideoTextureManager
impl RefUnwindSafe for VideoTextureManager
impl Send for VideoTextureManager
impl Sync for VideoTextureManager
impl Unpin for VideoTextureManager
impl UnwindSafe for VideoTextureManager
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().