luminance/backend/render_gate.rs
1//! Render gate backend interface.
2//!
3//! This interface defines the low-level API render gates must implement to be usable.
4//!
5//! A render gate is a special kind of pipeline node that allows to group renders behind a shared [`RenderState`]. All
6//! subsequent nodes in the pipeline will be using that render state.
7
8use crate::render_state::RenderState;
9
10/// Render gate and associated [`RenderState`].
11pub unsafe trait RenderGate {
12 /// Enter the [`RenderGate`] and share the [`RenderState`] for all subsequent nodes in the pipeline.
13 unsafe fn enter_render_state(&mut self, rdr_st: &RenderState);
14}