feat(imaging): add pure-Rust Skia backend (#112)
This commit is contained in:
@@ -932,6 +932,16 @@ fn validate_features(name: &str, actual: &BTreeMap<String, Vec<String>>) -> Resu
|
||||
]),
|
||||
"libremetaverse-imaging-skia" => BTreeMap::from([
|
||||
("default".to_owned(), Vec::new()),
|
||||
(
|
||||
"rust-skia".to_owned(),
|
||||
vec![
|
||||
"dep:image-webp".to_owned(),
|
||||
"dep:skia-rs-codec".to_owned(),
|
||||
"skia-rs-codec/gif".to_owned(),
|
||||
"skia-rs-codec/jpeg".to_owned(),
|
||||
"skia-rs-codec/png".to_owned(),
|
||||
],
|
||||
),
|
||||
("skia".to_owned(), vec!["dep:skia-safe".to_owned()]),
|
||||
]),
|
||||
"libremetaverse-voice-webrtc" => BTreeMap::from([
|
||||
@@ -1232,7 +1242,7 @@ The exact mapping, exported-marker, feature, and normalized Rust declaration has
|
||||
- .NET events become `subscribe_*` calls returning an owned `Subscription`; callbacks are `Send + Sync` and dispatch outside internal locks.\n\
|
||||
- `IDisposable` becomes explicit idempotent shutdown plus `Drop`; cancellation remains a typed `Error::Cancelled`.\n\
|
||||
- Closed C# enums retain fixed discriminants and are SemVer-breaking to extend; flags retain unknown bits, while public Rust error enums are `non_exhaustive`.\n\
|
||||
- Optional native backends remain feature-gated (`jpeg2000`, `skia`, `vorbis`, `real-audio`); default and empty-default sets are part of the baseline.\n\
|
||||
- Optional native and pure-Rust backends remain feature-gated (`jpeg2000`, `rust-j2k`, `skia`, `rust-skia`, `vorbis`, `real-audio`); default and empty-default sets are part of the baseline.\n\
|
||||
- Capability HTTP injection uses project-owned `HttpMessageHandler`, `CapsHttpLimits`, and `with_native_transport`; the internal `reqwest` client is not part of the public surface.\n\
|
||||
- External C# signature types map to core/std, adopted cross-platform crates, or project-owned boundary types; no third-party crate path leaks through mapped signatures or public Rust declarations.\n\n\
|
||||
## Compile consumers\n\n\
|
||||
|
||||
@@ -38,7 +38,7 @@ const REQUIRED_PROFILES: [&str; 7] = [
|
||||
"windows-stable-portable",
|
||||
"macos-stable-portable",
|
||||
];
|
||||
const REQUIRED_FEATURE_SETS: [&str; 12] = [
|
||||
const REQUIRED_FEATURE_SETS: [&str; 13] = [
|
||||
"all-features",
|
||||
"dds-bc67",
|
||||
"default",
|
||||
@@ -48,11 +48,12 @@ const REQUIRED_FEATURE_SETS: [&str; 12] = [
|
||||
"no-default-features",
|
||||
"real-audio",
|
||||
"rust-j2k",
|
||||
"rust-skia",
|
||||
"skia",
|
||||
"tests",
|
||||
"vorbis",
|
||||
];
|
||||
const REQUIRED_FEATURES: [(&str, &str); 8] = [
|
||||
const REQUIRED_FEATURES: [(&str, &str); 9] = [
|
||||
("libremetaverse", "dds-bc67"),
|
||||
("libremetaverse", "jpeg2000"),
|
||||
("libremetaverse", "rust-j2k"),
|
||||
@@ -60,6 +61,7 @@ const REQUIRED_FEATURES: [(&str, &str); 8] = [
|
||||
("libremetaverse-imaging", "jpeg2000"),
|
||||
("libremetaverse-imaging", "rust-j2k"),
|
||||
("libremetaverse-imaging-skia", "skia"),
|
||||
("libremetaverse-imaging-skia", "rust-skia"),
|
||||
("libremetaverse-voice-webrtc", "real-audio"),
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user