Skip to content

Frame

The Frame object is a collection of Pass objects that are rendered to a Target by the Renderer.

It is used to render multiple passes to a single target, such as an opaque pass followed by a transparent pass.

You need to inject the Frame object into the Renderer to render it.

1 collapsed line
async fn run() -> Result<(), Box<dyn std::error::Error>> {
use fragmentcolor::{ Shader, Pass, Renderer, Frame };
let renderer = Renderer::new();
let target = renderer.create_texture_target([100, 100]).await?;
let pass1 = Pass::new("first");
let pass2 = Pass::new("second");
let mut frame = Frame::new();
frame.add_pass(&pass1);
frame.add_pass(&pass2);
3 collapsed lines
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }

Creates a new Frame object.

A Frame is an ordered collection of Pass objects that will be rendered by the Renderer in sequence.

use fragmentcolor::Frame;
let frame = Frame::new();

Adds a Pass to this Frame.

Passes are rendered in the order they are added.

use fragmentcolor::{Frame, Pass};
let mut pass1 = Pass::new("first");
let mut pass2 = Pass::new("second");
let mut frame = Frame::new();
frame.add_pass(&pass1);
frame.add_pass(&pass2);