TextureTarget
Description
Section titled “Description”The TextureTarget is an offscreen Target backed by a GPU texture.
Use it for headless rendering, tests, server-side image generation, or CI.
Example
Section titled “Example”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); // RGBA8target.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()) }
import { Renderer, Shader } from "fragmentcolor";
const renderer = new Renderer();const target = await renderer.createTextureTarget([64, 64]);
const shader = Shader.default();renderer.render(shader, target);
const image = target.getImage();
from fragmentcolor import Renderer, Shader
renderer = Renderer()target = renderer.create_texture_target([64, 64])
shader = Shader.default()renderer.render(shader, target)
image = target.get_image()
// Swift placeholder â bindings WIP
// Kotlin placeholder â bindings WIP
Methods
Section titled “Methods”TextureTarget::get_image()
Section titled “TextureTarget::get_image()”Returns the current contents of the target as a byte array in RGBA8 format.
Example
Section titled “Example”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()) }
import { Renderer, Shader } from "fragmentcolor";
const renderer = new Renderer();const target = await renderer.createTextureTarget([16, 16]);renderer.render(new Shader(""), target);
const image = target.getImage();
from rendercanvas.auto import RenderCanvas, loopfrom fragmentcolor import Renderer, Shader
renderer = Renderer()target = renderer.create_texture_target([16, 16])renderer.render(Shader(""), target)
image = target.get_image()
// Swift placeholder â bindings WIP
// Kotlin placeholder â bindings WIP
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.
Example
Section titled “Example”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()) }
import { Renderer } from "fragmentcolor";
const renderer = new Renderer();const target = await renderer.createTextureTarget([64, 64]);
target.resize([128, 32]);
from fragmentcolor import Renderer
renderer = Renderer()target = renderer.create_texture_target([64, 64])
target.resize([128, 32])
// Swift placeholder â bindings WIP
// Kotlin placeholder â bindings WIP
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.
Example
Section titled “Example”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()) }
import { Renderer } from "fragmentcolor";
const renderer = new Renderer();const target = await renderer.createTextureTarget([64, 64]);const size = target.size();const width = size.width;const height = size.height;const depth = size.depth;
from fragmentcolor import Renderer
renderer = Renderer()target = renderer.create_texture_target([64, 64])size = target.sizewidth = size.widthheight = size.heightdepth = size.depth
// Swift placeholder â bindings WIP
// Kotlin placeholder â bindings WIP