Struct SceneRenderPassContext

Source
pub struct SceneRenderPassContext<'a, 'b> {
Show 19 fields pub elapsed_time: f32, pub server: &'a dyn GraphicsServer, pub texture_cache: &'a mut TextureCache, pub geometry_cache: &'a mut GeometryCache, pub shader_cache: &'a mut ShaderCache, pub bundle_storage: &'a RenderDataBundleStorage, pub quality_settings: &'a QualitySettings, pub framebuffer: &'a mut dyn FrameBuffer, pub scene: &'b Scene, pub camera: &'b Camera, pub viewport: Rect<i32>, pub scene_handle: Handle<Scene>, pub fallback_resources: &'a FallbackResources, pub depth_texture: Rc<RefCell<dyn GpuTexture>>, pub normal_texture: Rc<RefCell<dyn GpuTexture>>, pub ambient_texture: Rc<RefCell<dyn GpuTexture>>, pub ui_renderer: &'a mut UiRenderer, pub uniform_buffer_cache: &'a mut UniformBufferCache, pub uniform_memory_allocator: &'a mut UniformMemoryAllocator,
}
Expand description

A context for custom scene render passes.

Fields§

§elapsed_time: f32

Amount of time (in seconds) that passed from creation of the engine. Keep in mind, that this value is not guaranteed to match real time. A user can change delta time with which the engine “ticks” and this delta time affects elapsed time.

§server: &'a dyn GraphicsServer

A graphics server that is used as a wrapper to underlying graphics API.

§texture_cache: &'a mut TextureCache

A texture cache that uploads engine’s Texture as internal GpuTexture to GPU. Use this to get a corresponding GPU texture by an instance of a Texture.

§geometry_cache: &'a mut GeometryCache

A geometry cache that uploads engine’s SurfaceData as internal GeometryBuffer to GPU. Use this to get a corresponding GPU geometry buffer (essentially it is just a VAO) by an instance of a SurfaceData.

§shader_cache: &'a mut ShaderCache

A cache that stores all native shaders associated with a shader resource. You can use it to get a ready-to-use set of shaders for your shader resource, which could be obtained from a material.

§bundle_storage: &'a RenderDataBundleStorage

A storage that contains “pre-compiled” groups of render data (batches).

§quality_settings: &'a QualitySettings

Current quality settings of the renderer.

§framebuffer: &'a mut dyn FrameBuffer

Current framebuffer to which scene is being rendered to.

§scene: &'b Scene

A scene being rendered.

§camera: &'b Camera

A camera from the scene that is used as “eyes”.

§viewport: Rect<i32>

A viewport of the camera.

§scene_handle: Handle<Scene>

A handle of the scene being rendered.

§fallback_resources: &'a FallbackResources

A set of textures of certain kinds that could be used as a stub in cases when you don’t have your own texture of this kind.

§depth_texture: Rc<RefCell<dyn GpuTexture>>

A texture with depth values from G-Buffer.

§Important notes

Keep in mind that G-Buffer cannot be modified in custom render passes, so you don’t have an ability to write to this texture. However, you can still write to depth of the frame buffer as you’d normally do.

§normal_texture: Rc<RefCell<dyn GpuTexture>>

A texture with world-space normals from G-Buffer.

§Important notes

Keep in mind that G-Buffer cannot be modified in custom render passes, so you don’t have an ability to write to this texture.

§ambient_texture: Rc<RefCell<dyn GpuTexture>>

A texture with ambient lighting values from G-Buffer.

§Important notes

Keep in mind that G-Buffer cannot be modified in custom render passes, so you don’t have an ability to write to this texture.

§ui_renderer: &'a mut UiRenderer

User interface renderer.

§uniform_buffer_cache: &'a mut UniformBufferCache

A cache of uniform buffers.

§uniform_memory_allocator: &'a mut UniformMemoryAllocator

Memory allocator for uniform buffers that tries to pack uniforms densely into large uniform buffers, giving you offsets to the data.

Auto Trait Implementations§

§

impl<'a, 'b> Freeze for SceneRenderPassContext<'a, 'b>

§

impl<'a, 'b> !RefUnwindSafe for SceneRenderPassContext<'a, 'b>

§

impl<'a, 'b> !Send for SceneRenderPassContext<'a, 'b>

§

impl<'a, 'b> !Sync for SceneRenderPassContext<'a, 'b>

§

impl<'a, 'b> Unpin for SceneRenderPassContext<'a, 'b>

§

impl<'a, 'b> !UnwindSafe for SceneRenderPassContext<'a, 'b>

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

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

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> Downcast for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts self reference as a reference to Any. Could be used to downcast a trait object to a particular type.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts self reference as a reference to Any. Could be used to downcast a trait object to a particular type.
Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

impl<T> FieldValue for T
where T: 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Casts self to a &dyn Any
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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