Struct WgpuRenderSystem

Source
pub struct WgpuRenderSystem { /* private fields */ }
Expand description

The concrete, WGPU-based implementation of the RenderSystem trait.

This struct encapsulates all the state necessary to drive rendering with WGPU, including the graphics context, the logical device, GPU profiler, and complex state for handling window resizing gracefully.

It acts as the primary rendering backend for the engine when the WGPU feature is enabled.

Implementations§

Source§

impl WgpuRenderSystem

Source

pub fn new() -> Self

Creates a new, uninitialized WgpuRenderSystem.

The system is not usable until RenderSystem::init is called.

Trait Implementations§

Source§

impl Debug for WgpuRenderSystem

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for WgpuRenderSystem

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl RenderSystem for WgpuRenderSystem

Source§

fn init( &mut self, window: &dyn KhoraWindow, ) -> Result<Vec<Arc<dyn ResourceMonitor>>, RenderError>

Initializes the rendering system with a given window. Read more
Source§

fn resize(&mut self, new_width: u32, new_height: u32)

Notifies the rendering system that the output window has been resized. Read more
Source§

fn prepare_frame(&mut self, _view_info: &ViewInfo)

Prepares for a new frame. Read more
Source§

fn render( &mut self, renderables: &[RenderObject], _view_info: &ViewInfo, settings: &RenderSettings, ) -> Result<RenderStats, RenderError>

Renders a single frame. Read more
Source§

fn get_last_frame_stats(&self) -> &RenderStats

Returns a reference to the statistics of the last successfully rendered frame.
Source§

fn supports_feature(&self, feature_name: &str) -> bool

Checks if a specific, optional rendering feature is supported by the backend.
Source§

fn shutdown(&mut self)

Cleans up and releases all graphics resources. This should be called once at application shutdown.
Source§

fn as_any(&self) -> &dyn Any

Allows downcasting to a concrete RenderSystem type.
Source§

fn get_adapter_info(&self) -> Option<RendererAdapterInfo>

Returns information about the active graphics adapter (GPU).
Source§

fn graphics_device(&self) -> Arc<dyn GraphicsDevice>

Returns a shared, thread-safe reference to the underlying GraphicsDevice. Read more
Source§

impl Send for WgpuRenderSystem

Source§

impl Sync for WgpuRenderSystem

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: 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.
§

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.
§

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.
§

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.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,