[package]
name = "webrender"
version = "0.62.0"
authors = ["Glenn Watson <gw@intuitionlibrary.com>"]
license = "MPL-2.0"
repository = "https://github.com/servo/webrender"
description = "A GPU accelerated 2D renderer for web content"
build = "build.rs"
edition = "2018"

[features]
default = ["static_freetype"]
profiler = ["tracy-rs/enable_profiler"]
capture = ["api/serialize", "ron", "serde", "smallvec/serde", "etagere/serialization", "glyph_rasterizer/capture"]
replay = ["api/deserialize", "ron", "serde", "smallvec/serde", "etagere/serialization", "glyph_rasterizer/replay"]
display_list_stats = ["api/display_list_stats"]
serialize_program = ["serde", "webrender_build/serialize_program"]
dynamic_freetype = ["glyph_rasterizer/dynamic_freetype"]
static_freetype = ["glyph_rasterizer/static_freetype"]
leak_checks = []
gecko = ["firefox-on-glean", "glean", "glyph_rasterizer/gecko"]
sw_compositor = ["swgl"]
debugger = ["hyper", "hyper-util", "http-body-util", "tokio", "serde_json", "url", "sha1", "base64", "libloading", "api/debugger", "capture"]

[build-dependencies]
build-parallel = "0.1.2"
glslopt = "0.1.14"
webrender_build = { version = "0.0.2", path = "../webrender_build" }

[dependencies]
bincode = "1.0"
bitflags = { version = "2", features = ["serde"] }
byteorder = "1.0"
euclid = { version = "0.22.10", features = ["serde"] }
rustc-hash = "2.1.1"
gleam = { workspace = true }
lazy_static = "1"
libloading = { version = "0.8", optional = true }
log = "0.4"
malloc_size_of_derive = "0.1"
num-traits = "0.2"
plane-split = "0.18"
png = { optional = true, version = "0.16" }
rayon = "1"
ron = { optional = true, version = "0.12.0" }
serde = { optional = true, version = "1.0", features = ["serde_derive"] }
smallvec = "1"
api = { version = "0.62.0", path = "../webrender_api", package = "webrender_api" }
webrender_build = { version = "0.0.2", path = "../webrender_build" }
malloc_size_of = { version = "0.2.0", path = "../wr_malloc_size_of", package = "wr_malloc_size_of" }
glyph_rasterizer = { version = "0.1.0", path = "../wr_glyph_rasterizer", package = "wr_glyph_rasterizer", default-features = false }
svg_fmt = "0.4"
tracy-rs = "0.1.2"
derive_more = { version = "2", features = ["add_assign"] }
etagere = "0.2.13"
glean = { workspace = true, optional = true }
firefox-on-glean = { version = "0.1.0", optional = true }
swgl = { path = "../swgl", optional = true }
topological-sort = "0.1"
peek-poke = { version = "0.3", path = "../peek-poke" }
allocator-api2 = { version = "0.2.18", features = ["alloc", "serde"] }
zeitstempel = "0.2.0"
hyper = { version = "1", optional = true, features = ["server", "http1"] }
hyper-util = { version = "0.1", optional = true, features = ["tokio", "http1", "server-auto"] }
http-body-util = { version = "0.1", optional = true }
tokio = { version = "1", optional = true, features = ["rt-multi-thread", "net", "io-util"] }
serde_json = { optional=true, version="1" }
url = { optional=true, version="2.5" }
sha1 = { optional=true, version="0.10" }
base64 = { optional=true, version="0.22" }

[dev-dependencies]
mozangle = "0.5.2"
rand = "0.4"
