pub struct WgpuSceneRenderer {
pub device: Device,
pub queue: Queue,
pub output_format: TextureFormat,
pub output_width: u32,
pub output_height: u32,
pub pixels_per_point: f32,
pub callback_resources: CallbackResources,
/* private fields */
}Fields§
§device: Device§queue: Queue§output_format: TextureFormat§output_width: u32§output_height: u32§pixels_per_point: f32Pixels per point (DPI scale) for ScreenDescriptor / PaintCallbackInfo.
callback_resources: CallbackResourcesImplementations§
Source§impl WgpuSceneRenderer
impl WgpuSceneRenderer
pub fn from_device( device: Device, queue: Queue, output_format: TextureFormat, msaa_samples: u32, ) -> Self
Source§impl WgpuSceneRenderer
impl WgpuSceneRenderer
pub fn set_image_from_bytes( &mut self, handle: u64, data: &[u8], srgb: bool, ) -> Result<()>
pub fn set_image_rgba8( &mut self, handle: u64, w: u32, h: u32, rgba: &[u8], srgb: bool, ) -> Result<()>
Sourcepub fn register_native_texture(
&mut self,
view: &TextureView,
width: u32,
height: u32,
) -> u64
pub fn register_native_texture( &mut self, view: &TextureView, width: u32, height: u32, ) -> u64
Register an externally-created wgpu::TextureView as an image (zero-copy).
Sourcepub fn register_native_texture_with_sampler(
&mut self,
view: &TextureView,
sampler_desc: SamplerDescriptor<'_>,
width: u32,
height: u32,
) -> u64
pub fn register_native_texture_with_sampler( &mut self, view: &TextureView, sampler_desc: SamplerDescriptor<'_>, width: u32, height: u32, ) -> u64
Like register_native_texture but with custom sampler descriptor.
Sourcepub fn update_native_texture(&mut self, handle: u64, view: &TextureView)
pub fn update_native_texture(&mut self, handle: u64, view: &TextureView)
Update an existing native texture handle with a new view (reuse handle).
pub fn set_image_nv12( &mut self, handle: u64, w: u32, h: u32, y: &[u8], uv: &[u8], color_info: ColorInfo, ) -> Result<()>
pub fn set_image_planes( &mut self, handle: u64, w: u32, h: u32, pixel_format: PixelFormat, planes: &[&[u8]], color_info: ColorInfo, ) -> Result<()>
pub fn set_image_dmabuf( &mut self, handle: u64, w: u32, h: u32, fds: Vec<OwnedFd>, modifier: u64, strides: Vec<u32>, offsets: Vec<u64>, color_info: ColorInfo, ) -> Result<()>
pub fn remove_image(&mut self, handle: u64)
pub fn register_image_from_bytes(&mut self, data: &[u8], srgb: bool) -> u64
Sourcepub fn register_image_rgba8(
&mut self,
w: u32,
h: u32,
rgba: &[u8],
srgb: bool,
) -> u64
pub fn register_image_rgba8( &mut self, w: u32, h: u32, rgba: &[u8], srgb: bool, ) -> u64
Register raw RGBA8 pixels (w * h * 4 bytes) as an image, returning
its handle for SceneNode::Image. Used by CPU-rasterized overlays
(e.g. subtitle bitmap layers) that have no encoded image bytes.
Pass srgb = true for sRGB overlays composited over video.
Sourcepub fn register_coverage_a8(&mut self, w: u32, h: u32, coverage: &[u8]) -> u64
pub fn register_coverage_a8(&mut self, w: u32, h: u32, coverage: &[u8]) -> u64
Register an 8-bit coverage tile (w * h bytes, 0 = empty, 255 =
fully covered) for SceneNode::Coverage, returning its handle.
Coverage tiles are immutable: re-register on geometry change and
remove_coverage handles you no longer emit (stale tiles also age
out under the image eviction policy).
Sourcepub fn remove_coverage(&mut self, handle: u64)
pub fn remove_coverage(&mut self, handle: u64)
Remove a coverage tile registered with register_coverage_a8.
Sourcepub fn coverage_dimensions(&mut self, handle: u64) -> Option<(u32, u32)>
pub fn coverage_dimensions(&mut self, handle: u64) -> Option<(u32, u32)>
Tile dimensions, marking the handle used (keeps it alive under the
eviction policy). Returns None for unknown handles.
Sourcepub fn set_pixels_per_point(&mut self, ppp: f32)
pub fn set_pixels_per_point(&mut self, ppp: f32)
Set pixels per point (DPI scale) for callback ScreenDescriptor / PaintCallbackInfo.
Sourcepub fn set_working_space(&mut self, enabled: bool)
pub fn set_working_space(&mut self, enabled: bool)
Enable or disable linear working-space rendering. When enabled, the scene is rendered into an Rgba16Float intermediate and a final full-screen pass applies the display OETF.
Source§impl WgpuSceneRenderer
impl WgpuSceneRenderer
pub fn render_scene_to_encoder( &mut self, scene: &Scene, encoder: &mut CommandEncoder, target_view: &TextureView, clear_color_override: Option<[f64; 4]>, )
Sourcepub fn render_to_view(
&mut self,
scene: &Scene,
encoder: &mut CommandEncoder,
target_view: &TextureView,
width: u32,
height: u32,
clear_color: Option<[f64; 4]>,
)
pub fn render_to_view( &mut self, scene: &Scene, encoder: &mut CommandEncoder, target_view: &TextureView, width: u32, height: u32, clear_color: Option<[f64; 4]>, )
Render a scene into an externally-provided texture view. Use this when embedding Repose in a host that owns the GPU. The host is responsible for submitting the encoder and handling present.
Trait Implementations§
Source§impl Drop for WgpuSceneRenderer
impl Drop for WgpuSceneRenderer
Auto Trait Implementations§
impl !RefUnwindSafe for WgpuSceneRenderer
impl !UnwindSafe for WgpuSceneRenderer
impl Freeze for WgpuSceneRenderer
impl Send for WgpuSceneRenderer
impl Sync for WgpuSceneRenderer
impl Unpin for WgpuSceneRenderer
impl UnsafeUnpin for WgpuSceneRenderer
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.