Skip to content

WindowTarget

WindowTarget is an implementation of Target that represents a rendering destination attached to a platform-specific window.

The Target object is a rendering destination for the Renderer.

It contains a GPU surface texture attached to a platform-specific window or an offscreen texture for headless rendering (see TextureTarget).

1 collapsed line
async fn run() -> Result<(), Box<dyn std::error::Error>> {
use fragmentcolor::{Renderer, Shader, Target};
// Use your platform's windowing system to create a window.
// We officially support Winit. Check the examples folder for details.
let window = fragmentcolor::headless_window([800, 600]);
let renderer = Renderer::new();
let target = renderer.create_target(window).await?;
renderer.render(&Shader::default(), &target)?;
5 collapsed lines
let s = target.size();
assert_eq!([s.width, s.height], [800, 600]);
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }

This operation returns an empty array for WindowTarget.

Use a TextureTarget instead.

1 collapsed line
async fn run() -> Result<(), Box<dyn std::error::Error>> {
use fragmentcolor::{Renderer, Target, Shader};
let renderer = Renderer::new();
let target = renderer.create_texture_target([16, 16]).await?;
renderer.render(&Shader::default(), &target)?;
let image = target.get_image();
4 collapsed lines
assert_eq!(image.len(), 16 * 16 * 4); // RGBA8
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }

WindowTarget::resize(size: [u32; 2] | (u32, u32))

Section titled “WindowTarget::resize(size: [u32; 2] | (u32, u32))”

Resizes the Target to the given width and height.

1 collapsed line
async fn run() -> Result<(), Box<dyn std::error::Error>> {
use fragmentcolor::Renderer;
let renderer = Renderer::new();
let mut target = renderer.create_texture_target([64, 32]).await?;
target.resize([128, 64]);
4 collapsed lines
assert_eq!(target.size(), [128, 64]);
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }

Returns the size of the Target in pixels.

1 collapsed line
async fn run() -> Result<(), Box<dyn std::error::Error>> {
use fragmentcolor::{Renderer, Shader};
let renderer = Renderer::new();
let target = renderer.create_texture_target([64, 32]).await?;
4 collapsed lines
assert_eq!(target.size(), [64, 32]);
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }