summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-11-08 13:11:11 +0100
committerLaurenz <laurmaedje@gmail.com>2023-11-08 13:16:13 +0100
commitec04c3de2fcc5b31d94dc2be8561e569f28cc0a1 (patch)
tree3b143ac30f82655824f6af0d73935eebc89d74ae /tests
parentc12a19a0758774a3285ee3d129803a786cd58a87 (diff)
Extract `typst-render` crate
Diffstat (limited to 'tests')
-rw-r--r--tests/Cargo.toml1
-rw-r--r--tests/src/benches.rs2
-rw-r--r--tests/src/tests.rs18
3 files changed, 17 insertions, 4 deletions
diff --git a/tests/Cargo.toml b/tests/Cargo.toml
index a5a18a5b..023776ea 100644
--- a/tests/Cargo.toml
+++ b/tests/Cargo.toml
@@ -9,6 +9,7 @@ publish = false
[dev-dependencies]
typst = { workspace = true }
typst-library = { workspace = true }
+typst-render = { workspace = true }
clap = { workspace = true }
comemo = { workspace = true }
ecow = { workspace = true }
diff --git a/tests/src/benches.rs b/tests/src/benches.rs
index 8d74ca9c..666bb8a0 100644
--- a/tests/src/benches.rs
+++ b/tests/src/benches.rs
@@ -90,7 +90,7 @@ fn bench_render(iai: &mut Iai) {
let world = BenchWorld::new();
let mut tracer = Tracer::new();
let document = typst::compile(&world, &mut tracer).unwrap();
- iai.run(|| typst::export::render(&document.pages[0], 1.0, Color::WHITE))
+ iai.run(|| typst_render::render(&document.pages[0], 1.0, Color::WHITE))
}
struct BenchWorld {
diff --git a/tests/src/tests.rs b/tests/src/tests.rs
index d974b731..07dba177 100644
--- a/tests/src/tests.rs
+++ b/tests/src/tests.rs
@@ -26,7 +26,7 @@ use typst::eval::{
eco_format, func, Bytes, Datetime, Library, NoneValue, Repr, Tracer, Value,
};
use typst::font::{Font, FontBook};
-use typst::geom::{Abs, Color, Smart};
+use typst::geom::{Abs, Color, Smart, Transform};
use typst::syntax::{FileId, PackageVersion, Source, SyntaxNode, VirtualPath};
use typst::{World, WorldExt};
use typst_library::layout::{Margin, PageElem};
@@ -906,7 +906,7 @@ fn render(frames: &[Frame]) -> sk::Pixmap {
}
}
- let mut pixmap = typst::export::render_merged(
+ let mut pixmap = typst_render::render_merged(
frames,
pixel_per_pt,
Color::WHITE,
@@ -932,7 +932,7 @@ fn render_links(canvas: &mut sk::Pixmap, ts: sk::Transform, frame: &Frame) {
let ts = ts.pre_translate(pos.x.to_pt() as f32, pos.y.to_pt() as f32);
match *item {
FrameItem::Group(ref group) => {
- let ts = ts.pre_concat(group.transform.into());
+ let ts = ts.pre_concat(to_sk_transform(&group.transform));
render_links(canvas, ts, &group.frame);
}
FrameItem::Meta(Meta::Link(_), size) => {
@@ -948,6 +948,18 @@ fn render_links(canvas: &mut sk::Pixmap, ts: sk::Transform, frame: &Frame) {
}
}
+fn to_sk_transform(transform: &Transform) -> sk::Transform {
+ let Transform { sx, ky, kx, sy, tx, ty } = *transform;
+ sk::Transform::from_row(
+ sx.get() as _,
+ ky.get() as _,
+ kx.get() as _,
+ sy.get() as _,
+ tx.to_pt() as f32,
+ ty.to_pt() as f32,
+ )
+}
+
/// A Linear-feedback shift register using XOR as its shifting function.
/// Can be used as PRNG.
struct LinearShift(u64);