Skip to content

TextureTarget

The TextureTarget is an offscreen Target backed by a GPU texture.

Use it for headless rendering, tests, server-side image generation, or CI.

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

Returns the current contents of the target as a byte array in RGBA8 format.

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

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

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

Resizes the TextureTarget 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, 64]).await?;
target.resize([128, 32]);
4 collapsed lines
assert_eq!(target.size(), [128, 32]);
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { pollster::block_on(run()) }

TextureTarget::size() -> Size { width: u32, height: u32, depth: u32 }

Section titled “TextureTarget::size() -> Size { width: u32, height: u32, depth: u32 }”

Returns the size of the TextureTarget in pixels.

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