cranpose-render-common 0.9.21

Scene, renderer and hit-test contracts for Cranpose backends
Documentation
[package]
name = "cranpose-render-common"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
description = "Scene, renderer and hit-test contracts for Cranpose backends"
autotests = false

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true

[dependencies]
cranpose-foundation = { workspace = true }
cranpose-ui-graphics = { workspace = true }
cranpose-ui = { workspace = true }
cranpose-core = { workspace = true }
tiny-skia = { version = "0.12.0", default-features = false, features = ["std", "simd"] }
hyphenation = { version = "0.8.4", default-features = false, optional = true }
ab_glyph = "0.2.32"
log = "0.4"
thiserror = "2.0.21"
ttf-parser = "0.25.1"
smallvec = "1.16.2"
unicode-segmentation = "1.13.3"
rustybuzz = { version = "0.20.1", optional = true }
unicode-bidi = { version = "0.3.18", optional = true }
unicode-script = { version = "0.5.8", optional = true }

[dev-dependencies]
stats_alloc = "0.1.10"
web-time = "1.1.0"

[features]
default = ["embedded-default-font"]
# Embed NotoSansMerged (~1.3 MiB) as the fallback font used when an app
# provides no fonts. Disable to keep app-provided fonts as the only source.
embedded-default-font = []
text-hyphenation = ["dep:hyphenation"]
text-hyphenation-embedded = ["text-hyphenation", "hyphenation/embed_all"]
text-shaping = ["dep:rustybuzz", "dep:unicode-bidi", "dep:unicode-script"]

[[test]]
name = "integration"
path = "tests/integration.rs"

[[test]]
name = "allocations"
path = "tests/allocations/main.rs"

[[bench]]
name = "canvas_recording"
harness = false