summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilal Elmoussaoui <belmouss@redhat.com>2022-10-19 16:11:59 +0200
committerMarge Bot <marge-bot@gnome.org>2022-10-25 13:59:05 +0000
commit629e583c2e3970c1c4149cc23bb4ec6887adee09 (patch)
treed1dc2b7b84befa818e0c32c838ca380251b9ec75
parent963bdfa6f5723408bfe367adc3134568a82b5fc4 (diff)
downloadlibrsvg-629e583c2e3970c1c4149cc23bb4ec6887adee09.tar.gz
misc: Bump gtk-rs crates to 0.16.0
Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/760>
-rw-r--r--Cargo.lock346
-rw-r--r--Cargo.toml20
-rw-r--r--examples/proportional.rs7
-rw-r--r--src/api.rs2
-rw-r--r--src/bin/rsvg-convert.rs19
-rw-r--r--src/c_api/handle.rs117
-rw-r--r--src/c_api/pixbuf_utils.rs7
-rw-r--r--src/c_api/sizing.rs10
-rw-r--r--src/drawing_ctx.rs8
-rw-r--r--src/handle.rs6
-rw-r--r--src/lib.rs7
-rw-r--r--src/rect.rs35
-rw-r--r--src/surface_utils/shared_surface.rs14
-rw-r--r--src/text.rs4
-rw-r--r--tests/src/api.rs50
-rw-r--r--tests/src/bugs.rs74
-rw-r--r--tests/src/errors.rs12
-rw-r--r--tests/src/filters.rs14
-rw-r--r--tests/src/geometries.rs7
-rw-r--r--tests/src/intrinsic_dimensions.rs168
-rw-r--r--tests/src/legacy_sizing.rs112
-rw-r--r--tests/src/primitive_geometries.rs7
-rw-r--r--tests/src/primitives.rs49
-rw-r--r--tests/src/reference.rs9
-rw-r--r--tests/src/reference_utils.rs28
-rw-r--r--tests/src/render_crash.rs11
-rw-r--r--tests/src/text.rs15
-rw-r--r--tests/src/utils.rs2
28 files changed, 411 insertions, 749 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4b7da718..5bb6b619 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -28,9 +28,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.65"
+version = "1.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
+checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
[[package]]
name = "approx"
@@ -43,9 +43,9 @@ dependencies = [
[[package]]
name = "assert_cmd"
-version = "2.0.4"
+version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ae1ddd39efd67689deb1979d80bad3bf7f2b09c6e6117c8d1f2443b5e2f83e"
+checksum = "d5c2ca00549910ec251e3bd15f87aeeb206c9456b9a77b43ff6c97c54042a472"
dependencies = [
"bstr",
"doc-comment",
@@ -119,9 +119,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.11.0"
+version = "3.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d"
+checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
[[package]]
name = "bytemuck"
@@ -137,22 +137,23 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cairo-rs"
-version = "0.15.12"
+version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
+checksum = "08f9ee4a4ca9239c9a839453dce04b7ddee2f859ec4cd7acd1f5703b68db549c"
dependencies = [
"bitflags",
"cairo-sys-rs",
"glib",
"libc",
+ "once_cell",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+checksum = "5119ea655ec777b523f0b57279e70f8a4542f61b0e98a48f892b4ef043fd4c5d"
dependencies = [
"glib-sys",
"libc",
@@ -166,6 +167,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+
+[[package]]
name = "cfg-expr"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -231,9 +238,9 @@ checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65"
dependencies = [
"heck",
"proc-macro-error",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -246,6 +253,16 @@ dependencies = [
]
[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
name = "const-cstr"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -337,26 +354,24 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.10"
+version = "0.9.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1"
+checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
- "once_cell",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
-version = "0.8.11"
+version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
+checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
dependencies = [
"cfg-if",
- "once_cell",
]
[[package]]
@@ -370,10 +385,10 @@ dependencies = [
"itoa 0.4.8",
"matches",
"phf",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"smallvec",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -383,7 +398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
dependencies = [
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -409,6 +424,50 @@ dependencies = [
]
[[package]]
+name = "cxx"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2 1.0.47",
+ "quote 1.0.21",
+ "scratch",
+ "syn 1.0.103",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f"
+dependencies = [
+ "proc-macro2 1.0.47",
+ "quote 1.0.21",
+ "syn 1.0.103",
+]
+
+[[package]]
name = "data-url"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -424,10 +483,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"rustc_version 0.4.0",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -588,24 +647,24 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050"
+checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
dependencies = [
"futures-core",
]
[[package]]
name = "futures-core"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf"
+checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
[[package]]
name = "futures-executor"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab"
+checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
dependencies = [
"futures-core",
"futures-task",
@@ -614,23 +673,35 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68"
+checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+dependencies = [
+ "proc-macro2 1.0.47",
+ "quote 1.0.21",
+ "syn 1.0.103",
+]
[[package]]
name = "futures-task"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1"
+checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
[[package]]
name = "futures-util"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90"
+checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
dependencies = [
"futures-core",
+ "futures-macro",
"futures-task",
"pin-project-lite",
"pin-utils",
@@ -648,9 +719,9 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
-version = "0.15.11"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
+checksum = "c0fb526c8c3a075eda15f961820edf3e15fe18576ac4fbabbb324e4cc6c421e6"
dependencies = [
"bitflags",
"gdk-pixbuf-sys",
@@ -661,9 +732,9 @@ dependencies = [
[[package]]
name = "gdk-pixbuf-sys"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+checksum = "7df12d15c10c3c5a84d9fb4ba0e27659f6a2bdee4f27f8b17126da15d5ddd3f2"
dependencies = [
"gio-sys",
"glib-sys",
@@ -685,9 +756,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
dependencies = [
"cfg-if",
"libc",
@@ -696,26 +767,29 @@ dependencies = [
[[package]]
name = "gio"
-version = "0.15.12"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
+checksum = "3025f17aab38ebbb40d785806cf36c292c4dd6755b05584fc52d34fb87533263"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-io",
+ "futures-util",
"gio-sys",
"glib",
"libc",
"once_cell",
+ "pin-project-lite",
+ "smallvec",
"thiserror",
]
[[package]]
name = "gio-sys"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+checksum = "6da1bba9d3f2ab13a6e9932c40f240dc99ebc9f0bdc35cfb130d1a3df36f374c"
dependencies = [
"glib-sys",
"gobject-sys",
@@ -726,15 +800,17 @@ dependencies = [
[[package]]
name = "glib"
-version = "0.15.12"
+version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
+checksum = "079d580b26ee5eb504942bd4340a1218323a4cf19a31d776d62cd3a2a8416622"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
+ "futures-util",
+ "gio-sys",
"glib-macros",
"glib-sys",
"gobject-sys",
@@ -746,24 +822,24 @@ dependencies = [
[[package]]
name = "glib-macros"
-version = "0.15.11"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64"
+checksum = "e195c1311fa6b04d7b896ea39385f6bd60ef5d25bf74a7c11c8c3f94f6c1a572"
dependencies = [
"anyhow",
"heck",
"proc-macro-crate",
"proc-macro-error",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
name = "glib-sys"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+checksum = "b33357bb421a77bd849f6a0bfcaf3b4b256a2577802971bb5dd522d530f27021"
dependencies = [
"libc",
"system-deps",
@@ -777,9 +853,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
[[package]]
name = "gobject-sys"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+checksum = "63ca11a57400f3d4fda594e002844be47900c9fb8b29e2155c6e37a1f24e51b3"
dependencies = [
"glib-sys",
"libc",
@@ -815,19 +891,29 @@ dependencies = [
[[package]]
name = "iana-time-zone"
-version = "0.1.48"
+version = "0.1.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0"
+checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed"
dependencies = [
"android_system_properties",
"core-foundation-sys",
+ "iana-time-zone-haiku",
"js-sys",
- "once_cell",
"wasm-bindgen",
"winapi",
]
[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+dependencies = [
+ "cxx",
+ "cxx-build",
+]
+
+[[package]]
name = "idna"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -858,9 +944,9 @@ dependencies = [
[[package]]
name = "itertools"
-version = "0.10.4"
+version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8bf247779e67a9082a4790b45e71ac7cfd1321331a5c856a74a9faebdab78d0"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
"either",
]
@@ -873,9 +959,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
+checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
[[package]]
name = "js-sys"
@@ -900,9 +986,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.133"
+version = "0.2.135"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966"
+checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
[[package]]
name = "librsvg"
@@ -956,6 +1042,15 @@ dependencies = [
]
[[package]]
+name = "link-cplusplus"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
+dependencies = [
+ "cc",
+]
+
+[[package]]
name = "linked-hash-map"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -976,9 +1071,9 @@ dependencies = [
[[package]]
name = "lock_api"
-version = "0.4.8"
+version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
dependencies = [
"autocfg",
"scopeguard",
@@ -1107,9 +1202,9 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -1210,9 +1305,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.14.0"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
+checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
[[package]]
name = "oorandom"
@@ -1228,11 +1323,12 @@ checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
[[package]]
name = "pango"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
+checksum = "7208c60f224cf6e44c551df5ee2ef38f9da0fd29d7c5a0402000b8ab0520e798"
dependencies = [
"bitflags",
+ "gio",
"glib",
"libc",
"once_cell",
@@ -1241,9 +1337,9 @@ dependencies = [
[[package]]
name = "pango-sys"
-version = "0.15.10"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+checksum = "922441c228366ed98d3534b87bc7c987c50564094c3abbc3513717786419252d"
dependencies = [
"glib-sys",
"gobject-sys",
@@ -1253,9 +1349,9 @@ dependencies = [
[[package]]
name = "pangocairo"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7876a45c1f1d1a75a2601dc6d9ef2cb5a8be0e3d76f909d82450759929035366"
+checksum = "a726760a29e5e17d965d5d7573548e385ae9ce99cb7adcf70d75d4627f23fc7a"
dependencies = [
"bitflags",
"cairo-rs",
@@ -1267,9 +1363,9 @@ dependencies = [
[[package]]
name = "pangocairo-sys"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78cf746594916c81d5f739af9335c5f55a1f4606d80b3e1d821f18cf95a29494"
+checksum = "b8281198ea4596bdc6e22b0d3565471c9456d7125e423a785f866640c18b57ec"
dependencies = [
"cairo-sys-rs",
"glib-sys",
@@ -1363,9 +1459,9 @@ dependencies = [
"phf_generator 0.8.0",
"phf_shared 0.8.0",
"proc-macro-hack",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -1510,9 +1606,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
"version_check",
]
@@ -1522,7 +1618,7 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"version_check",
]
@@ -1544,9 +1640,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.43"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
+checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
dependencies = [
"unicode-ident",
]
@@ -1598,7 +1694,7 @@ version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
]
[[package]]
@@ -1661,7 +1757,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.7",
+ "getrandom 0.2.8",
]
[[package]]
@@ -1838,6 +1934,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
+name = "scratch"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+
+[[package]]
name = "selectors"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1878,9 +1980,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
-version = "1.0.144"
+version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860"
+checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
dependencies = [
"serde_derive",
]
@@ -1897,22 +1999,22 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.144"
+version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00"
+checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
name = "serde_json"
-version = "1.0.85"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
+checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
dependencies = [
- "itoa 1.0.3",
+ "itoa 1.0.4",
"ryu",
"serde",
]
@@ -1972,9 +2074,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.9.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]]
name = "stable_deref_trait"
@@ -2011,11 +2113,11 @@ version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"serde",
"serde_derive",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -2025,13 +2127,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
dependencies = [
"base-x",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"serde",
"serde_derive",
"serde_json",
"sha1",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -2062,7 +2164,7 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
dependencies = [
"phf_generator 0.10.0",
"phf_shared 0.10.0",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
]
@@ -2085,11 +2187,11 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.100"
+version = "1.0.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e"
+checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"unicode-ident",
]
@@ -2176,22 +2278,22 @@ checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16"
[[package]]
name = "thiserror"
-version = "1.0.35"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85"
+checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.35"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783"
+checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -2237,10 +2339,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
dependencies = [
"proc-macro-hack",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
"standback",
- "syn 1.0.100",
+ "syn 1.0.103",
]
[[package]]
@@ -2291,9 +2393,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
name = "unicode-ident"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
+checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
[[package]]
name = "unicode-normalization"
@@ -2402,9 +2504,9 @@ dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
"wasm-bindgen-shared",
]
@@ -2424,9 +2526,9 @@ version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
dependencies = [
- "proc-macro2 1.0.43",
+ "proc-macro2 1.0.47",
"quote 1.0.21",
- "syn 1.0.100",
+ "syn 1.0.103",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -2449,9 +2551,9 @@ dependencies = [
[[package]]
name = "wide"
-version = "0.7.4"
+version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3aba2d1dac31ac7cae82847ac5b8be822aee8f99a4e100f279605016b185c5f"
+checksum = "ae41ecad2489a1655c8ef8489444b0b113c0a0c795944a3572a0931cf7d2525c"
dependencies = [
"bytemuck",
"safe_arch",
diff --git a/Cargo.toml b/Cargo.toml
index 474aa8f4..81b7eb7b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -48,7 +48,7 @@ crate-type = [ "staticlib", "rlib" ]
# Keep these in sync with respect to the cairo-rs version:
# src/lib.rs - toplevel example in the docs
byteorder = "1.4"
-cairo-rs = { version = "0.15", features=["v1_16", "png", "pdf", "ps", "svg"] }
+cairo-rs = { version = "0.16", features=["v1_16", "png", "pdf", "ps", "svg"] }
cast = "0.3.0"
chrono = "0.4.0" # rsvg-convert
clap = { version = "3.2.22", features = ["cargo", "derive"] } # rsvg-convert
@@ -56,9 +56,9 @@ cssparser = "0.28.0"
data-url = "0.1"
encoding = "0.2.33"
float-cmp = "0.9.0"
-gdk-pixbuf = "0.15"
-gio = { version = "0.15", features = ["v2_50"] } # per configure.ac
-glib = { version = "0.15", features = ["v2_50"] }
+gdk-pixbuf = "0.16"
+gio = "0.16"
+glib = "0.16"
itertools = "0.10.3"
language-tags = "0.3.1"
libc = "0.2"
@@ -67,8 +67,8 @@ markup5ever = "0.10"
nalgebra = "0.30.1"
num-traits = "0.2"
once_cell = "1.2.0"
-pango = { version = "0.15", features = ["v1_46"] }
-pangocairo = "0.15"
+pango = { version = "0.16", features = ["v1_46"] }
+pangocairo = "0.16"
rayon = "1"
rctree = "0.4.0"
regex = "1"
@@ -82,16 +82,16 @@ xml5ever = "0.16.1"
[dev-dependencies]
anyhow = "1.0"
assert_cmd = "2.0.2"
-cairo-rs = { version = "0.15", features = ["png"] }
+cairo-rs = { version = "0.16", features = ["png"] }
cast = "0.3.0"
chrono = "0.4.0"
criterion = "0.3"
-glib = "0.15"
+glib = "0.16"
libc = "0.2"
lopdf = "0.26.0"
matches = "0.1"
-pango = "0.15"
-pangocairo = "0.15"
+pango = "0.16"
+pangocairo = "0.16"
png = "0.17.2"
predicates = "2.0.0"
proptest = "1.0.0"
diff --git a/examples/proportional.rs b/examples/proportional.rs
index 9924b3ed..aefc5df9 100644
--- a/examples/proportional.rs
+++ b/examples/proportional.rs
@@ -44,12 +44,7 @@ fn main() {
let res = renderer.render_document(
&cr,
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: f64::from(width),
- height: f64::from(height),
- },
+ &cairo::Rectangle::new(0.0, 0.0, f64::from(width), f64::from(height)),
);
match res {
diff --git a/src/api.rs b/src/api.rs
index 9079278c..54e580fa 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -131,7 +131,7 @@ impl Loader {
/// let renderer = librsvg::CairoRenderer::new(&svg_handle);
/// renderer.render_document(
/// &cr,
- /// &cairo::Rectangle { x: 0.0, y: 0.0, width: 640.0, height: 480.0 },
+ /// &cairo::Rectangle::new(0.0, 0.0, 640.0, 480.0),
/// )?;
/// # Ok::<(), librsvg::RenderingError>(())
/// ```
diff --git a/src/bin/rsvg-convert.rs b/src/bin/rsvg-convert.rs
index d4aa82fb..3a220729 100644
--- a/src/bin/rsvg-convert.rs
+++ b/src/bin/rsvg-convert.rs
@@ -241,6 +241,12 @@ impl Deref for Surface {
}
}
+impl AsRef<cairo::Surface> for Surface {
+ fn as_ref(&self) -> &cairo::Surface {
+ self
+ }
+}
+
impl Surface {
pub fn new(
format: Format,
@@ -345,18 +351,13 @@ impl Surface {
// we do that with a separate transform.
let scale = Scale {
- x: final_size.w / geometry.width,
- y: final_size.h / geometry.height,
+ x: final_size.w / geometry.width(),
+ y: final_size.h / geometry.height(),
};
cr.scale(scale.x, scale.y);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: geometry.width,
- height: geometry.height,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, geometry.width(), geometry.height());
match id {
None => renderer.render_document(&cr, &viewport)?,
@@ -564,7 +565,7 @@ impl Converter {
let geometry = natural_geometry(&renderer, input, self.export_id.as_deref())?;
- let natural_size = Size::new(geometry.width, geometry.height);
+ let natural_size = Size::new(geometry.width(), geometry.height());
let params = NormalizeParams::from_dpi(Dpi::new(self.dpi_x.0, self.dpi_y.0));
diff --git a/src/c_api/handle.rs b/src/c_api/handle.rs
index 02770301..f1e65c4f 100644
--- a/src/c_api/handle.rs
+++ b/src/c_api/handle.rs
@@ -266,30 +266,23 @@ pub struct RsvgRectangle {
impl From<cairo::Rectangle> for RsvgRectangle {
fn from(r: cairo::Rectangle) -> RsvgRectangle {
RsvgRectangle {
- x: r.x,
- y: r.y,
- width: r.width,
- height: r.height,
+ x: r.x(),
+ y: r.y(),
+ width: r.width(),
+ height: r.height(),
}
}
}
impl From<RsvgRectangle> for cairo::Rectangle {
fn from(r: RsvgRectangle) -> cairo::Rectangle {
- cairo::Rectangle {
- x: r.x,
- y: r.y,
- width: r.width,
- height: r.height,
- }
+ cairo::Rectangle::new(r.x, r.y, r.width, r.height)
}
}
mod imp {
use super::*;
- use glib::{
- ParamFlags, ParamSpec, ParamSpecDouble, ParamSpecFlags, ParamSpecInt, ParamSpecString,
- };
+ use glib::{ParamSpec, ParamSpecDouble, ParamSpecFlags, ParamSpecInt, ParamSpecString};
use once_cell::sync::Lazy;
/// Contains all the interior mutability for a RsvgHandle to be called
@@ -324,51 +317,26 @@ mod imp {
fn properties() -> &'static [ParamSpec] {
static PROPERTIES: Lazy<Vec<ParamSpec>> = Lazy::new(|| {
vec![
- ParamSpecFlags::builder("flags", HandleFlags::static_type())
- .flags(ParamFlags::READWRITE | ParamFlags::CONSTRUCT_ONLY)
- .build(),
- ParamSpecDouble::builder("dpi-x")
- .flags(ParamFlags::READWRITE | ParamFlags::CONSTRUCT)
- .build(),
- ParamSpecDouble::builder("dpi-y")
- .flags(ParamFlags::READWRITE | ParamFlags::CONSTRUCT)
- .build(),
- ParamSpecString::builder("base-uri")
- .flags(ParamFlags::READWRITE | ParamFlags::CONSTRUCT)
- .build(),
- ParamSpecInt::builder("width")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecInt::builder("height")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecDouble::builder("em")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecDouble::builder("ex")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecString::builder("title")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecString::builder("desc")
- .flags(ParamFlags::READABLE)
- .build(),
- ParamSpecString::builder("metadata")
- .flags(ParamFlags::READABLE)
+ ParamSpecFlags::builder::<HandleFlags>("flags")
+ .construct_only()
.build(),
+ ParamSpecDouble::builder("dpi-x").construct().build(),
+ ParamSpecDouble::builder("dpi-y").construct().build(),
+ ParamSpecString::builder("base-uri").construct().build(),
+ ParamSpecInt::builder("width").read_only().build(),
+ ParamSpecInt::builder("height").read_only().build(),
+ ParamSpecDouble::builder("em").read_only().build(),
+ ParamSpecDouble::builder("ex").read_only().build(),
+ ParamSpecString::builder("title").read_only().build(),
+ ParamSpecString::builder("desc").read_only().build(),
+ ParamSpecString::builder("metadata").read_only().build(),
]
});
PROPERTIES.as_ref()
}
- fn set_property(
- &self,
- obj: &Self::Type,
- id: usize,
- value: &glib::Value,
- pspec: &ParamSpec,
- ) {
+ fn set_property(&self, id: usize, value: &glib::Value, pspec: &ParamSpec) {
+ let obj = self.instance();
match pspec.name() {
"flags" => {
let v: HandleFlags = value.get().expect("flags value has incorrect type");
@@ -401,7 +369,8 @@ mod imp {
}
}
- fn property(&self, obj: &Self::Type, id: usize, pspec: &ParamSpec) -> glib::Value {
+ fn property(&self, id: usize, pspec: &ParamSpec) -> glib::Value {
+ let obj = self.instance();
match pspec.name() {
"flags" => obj.get_flags().to_value(),
"dpi-x" => obj.get_dpi_x().to_value(),
@@ -549,12 +518,7 @@ pub trait CairoRectangleExt {
impl CairoRectangleExt for cairo::Rectangle {
fn from_size(width: f64, height: f64) -> Self {
- Self {
- x: 0.0,
- y: 0.0,
- width,
- height,
- }
+ Self::new(0.0, 0.0, width, height)
}
}
@@ -805,8 +769,8 @@ impl CHandle {
.get_geometry_sub(id)
.and_then(|(ink_r, _)| {
// Keep these in sync with tests/src/reference.rs
- let width = checked_i32(ink_r.width.round())?;
- let height = checked_i32(ink_r.height.round())?;
+ let width = checked_i32(ink_r.width().round())?;
+ let height = checked_i32(ink_r.height().round())?;
Ok((ink_r, width, height))
})
@@ -816,8 +780,8 @@ impl CHandle {
RsvgDimensionData {
width: w,
height: h,
- em: ink_r.width,
- ex: ink_r.height,
+ em: ink_r.width(),
+ ex: ink_r.height(),
}
});
@@ -835,8 +799,8 @@ impl CHandle {
self.get_geometry_sub(id)
.and_then(|(ink_r, _)| {
- let width = checked_i32(ink_r.width.round())?;
- let height = checked_i32(ink_r.height.round())?;
+ let width = checked_i32(ink_r.width().round())?;
+ let height = checked_i32(ink_r.height().round())?;
Ok((ink_r, width, height))
})
@@ -844,8 +808,8 @@ impl CHandle {
inner.size_callback.call(width, height);
Ok(RsvgPositionData {
- x: checked_i32(ink_r.x)?,
- y: checked_i32(ink_r.y)?,
+ x: checked_i32(ink_r.x())?,
+ y: checked_i32(ink_r.y())?,
})
})
}
@@ -893,12 +857,12 @@ impl CHandle {
return Ok(());
}
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: f64::from(dimensions.width),
- height: f64::from(dimensions.height),
- };
+ let viewport = cairo::Rectangle::new(
+ 0.0,
+ 0.0,
+ f64::from(dimensions.width),
+ f64::from(dimensions.height),
+ );
self.render_layer(cr, id, &viewport)
}
@@ -1032,7 +996,7 @@ fn is_cancellable(obj: *mut gio::ffi::GCancellable) -> bool {
fn get_rust_handle(handle: *const RsvgHandle) -> CHandle {
let handle = unsafe { &*handle };
- handle.imp().instance()
+ handle.imp().instance().to_owned()
}
#[no_mangle]
@@ -1451,15 +1415,14 @@ pub unsafe extern "C" fn rsvg_handle_get_position_sub(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new() -> *const RsvgHandle {
- let obj = glib::Object::new::<CHandle>(&[]).unwrap();
+ let obj = glib::Object::new::<CHandle>(&[]);
obj.to_glib_full()
}
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new_with_flags(flags: RsvgHandleFlags) -> *const RsvgHandle {
- let obj = glib::Object::new::<CHandle>(&[("flags", &HandleFlags::from_bits_truncate(flags))])
- .unwrap();
+ let obj = glib::Object::new::<CHandle>(&[("flags", &HandleFlags::from_bits_truncate(flags))]);
obj.to_glib_full()
}
diff --git a/src/c_api/pixbuf_utils.rs b/src/c_api/pixbuf_utils.rs
index a43518b6..cc0efe05 100644
--- a/src/c_api/pixbuf_utils.rs
+++ b/src/c_api/pixbuf_utils.rs
@@ -133,12 +133,7 @@ pub fn render_to_pixbuf_at_size(
desired_height / document_height,
);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: document_width,
- height: document_height,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, document_width, document_height);
// We do it with a cr transform so we can scale non-proportionally.
renderer.render_document(&cr, &viewport)?;
diff --git a/src/c_api/sizing.rs b/src/c_api/sizing.rs
index e0c2090a..e0c85bd1 100644
--- a/src/c_api/sizing.rs
+++ b/src/c_api/sizing.rs
@@ -30,7 +30,7 @@ use super::handle::CairoRectangleExt;
pub trait LegacySize {
fn legacy_document_size(&self) -> Result<(f64, f64), RenderingError> {
let (ink_r, _) = self.legacy_layer_geometry(None)?;
- Ok((ink_r.width, ink_r.height))
+ Ok((ink_r.width(), ink_r.height()))
}
fn legacy_layer_geometry(
@@ -103,14 +103,14 @@ fn size_in_pixels_from_percentage_width_and_height(
// Avoid division by zero below. If the viewBox is zero-sized, there's
// not much we can do.
- if approx_eq!(f64, vbox.width, 0.0) || approx_eq!(f64, vbox.height, 0.0) {
+ if approx_eq!(f64, vbox.width(), 0.0) || approx_eq!(f64, vbox.height(), 0.0) {
return Some((0.0, 0.0));
}
match (width.unit, height.unit) {
- (Percent, Percent) => Some((vbox.width, vbox.height)),
- (_, Percent) => Some((w, w * vbox.height / vbox.width)),
- (Percent, _) => Some((h * vbox.width / vbox.height, h)),
+ (Percent, Percent) => Some((vbox.width(), vbox.height())),
+ (_, Percent) => Some((w, w * vbox.height() / vbox.width())),
+ (Percent, _) => Some((h * vbox.width() / vbox.height(), h)),
(_, _) => unreachable!("should have been called with percentage units"),
}
}
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index fc458798..444a7582 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -759,7 +759,7 @@ impl DrawingCtx {
.create_similar_surface_for_toplevel_viewport(&self.cr.target())?,
)?,
Filter::List(_) => {
- cairo::Context::new(&*self.create_surface_for_toplevel_viewport()?)?
+ cairo::Context::new(self.create_surface_for_toplevel_viewport()?)?
}
};
@@ -1847,8 +1847,8 @@ impl DrawingCtx {
/// Create a Pango context with a particular configuration.
pub fn create_pango_context(font_options: &FontOptions, transform: &Transform) -> pango::Context {
- let font_map = pangocairo::FontMap::default().unwrap();
- let context = font_map.create_context().unwrap();
+ let font_map = pangocairo::FontMap::default();
+ let context = font_map.create_context();
context.set_round_glyph_positions(false);
@@ -2241,7 +2241,7 @@ impl From<TextRendering> for cairo::Antialias {
impl From<cairo::Matrix> for Transform {
#[inline]
fn from(m: cairo::Matrix) -> Self {
- Self::new_unchecked(m.xx, m.yx, m.xy, m.yy, m.x0, m.y0)
+ Self::new_unchecked(m.xx(), m.yx(), m.xy(), m.yy(), m.x0(), m.y0())
}
}
diff --git a/src/handle.rs b/src/handle.rs
index 8c9caed9..36de859d 100644
--- a/src/handle.rs
+++ b/src/handle.rs
@@ -342,10 +342,10 @@ impl Handle {
// Render, transforming so element is at the new viewport's origin
with_saved_cr(cr, || {
- let factor = (element_viewport.width / ink_r.width())
- .min(element_viewport.height / ink_r.height());
+ let factor = (element_viewport.width() / ink_r.width())
+ .min(element_viewport.height() / ink_r.height());
- cr.translate(element_viewport.x, element_viewport.y);
+ cr.translate(element_viewport.x(), element_viewport.y());
cr.scale(factor, factor);
cr.translate(-ink_r.x0, -ink_r.y0);
diff --git a/src/lib.rs b/src/lib.rs
index 56e71c80..022c0150 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -44,12 +44,7 @@
//! let renderer = librsvg::CairoRenderer::new(&handle);
//! renderer.render_document(
//! &cr,
-//! &cairo::Rectangle {
-//! x: 0.0,
-//! y: 0.0,
-//! width: f64::from(WIDTH),
-//! height: f64::from(HEIGHT),
-//! },
+//! &cairo::Rectangle::new(0.0, 0.0, f64::from(WIDTH), f64::from(HEIGHT))
//! ).unwrap();
//!
//! // Loading from a static SVG asset
diff --git a/src/rect.rs b/src/rect.rs
index b0bbb201..f805211e 100644
--- a/src/rect.rs
+++ b/src/rect.rs
@@ -188,10 +188,10 @@ impl From<cairo::Rectangle> for Rect {
#[inline]
fn from(r: cairo::Rectangle) -> Self {
Self {
- x0: r.x,
- y0: r.y,
- x1: r.x + r.width,
- y1: r.y + r.height,
+ x0: r.x(),
+ y0: r.y(),
+ x1: r.x() + r.width(),
+ y1: r.y() + r.height(),
}
}
}
@@ -199,12 +199,7 @@ impl From<cairo::Rectangle> for Rect {
impl From<Rect> for cairo::Rectangle {
#[inline]
fn from(r: Rect) -> Self {
- Self {
- x: r.x0,
- y: r.y0,
- width: r.x1 - r.x0,
- height: r.y1 - r.y0,
- }
+ Self::new(r.x0, r.y0, r.x1 - r.x0, r.y1 - r.y0)
}
}
@@ -258,10 +253,10 @@ impl From<cairo::Rectangle> for IRect {
#[inline]
fn from(r: cairo::Rectangle) -> Self {
Self {
- x0: r.x.floor() as i32,
- y0: r.y.floor() as i32,
- x1: (r.x + r.width).ceil() as i32,
- y1: (r.y + r.height).ceil() as i32,
+ x0: r.x().floor() as i32,
+ y0: r.y().floor() as i32,
+ x1: (r.x() + r.width()).ceil() as i32,
+ y1: (r.y() + r.height()).ceil() as i32,
}
}
}
@@ -269,11 +264,11 @@ impl From<cairo::Rectangle> for IRect {
impl From<IRect> for cairo::Rectangle {
#[inline]
fn from(r: IRect) -> Self {
- Self {
- x: f64::from(r.x0),
- y: f64::from(r.y0),
- width: f64::from(r.x1 - r.x0),
- height: f64::from(r.y1 - r.y0),
- }
+ Self::new(
+ f64::from(r.x0),
+ f64::from(r.y0),
+ f64::from(r.x1 - r.x0),
+ f64::from(r.y1 - r.y0),
+ )
}
}
diff --git a/src/surface_utils/shared_surface.rs b/src/surface_utils/shared_surface.rs
index dc4bc45e..0bd74353 100644
--- a/src/surface_utils/shared_surface.rs
+++ b/src/surface_utils/shared_surface.rs
@@ -410,7 +410,7 @@ impl ImageSurface<Shared> {
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
cr.set_source_surface(&self.surface, 0f64, 0f64)?;
@@ -434,7 +434,7 @@ impl ImageSurface<Shared> {
{
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
cr.scale(x, y);
@@ -994,7 +994,7 @@ impl ImageSurface<Shared> {
if color.alpha > 0 {
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
cr.set_source_rgba(
@@ -1028,7 +1028,7 @@ impl ImageSurface<Shared> {
{
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(output_bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
self.set_as_source_surface(&cr, dx, dy)?;
@@ -1053,7 +1053,7 @@ impl ImageSurface<Shared> {
if rect.is_none() || !rect.unwrap().is_empty() {
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
image.set_as_source_surface(&cr, 0f64, 0f64)?;
@@ -1116,7 +1116,7 @@ impl ImageSurface<Shared> {
ptn.set_matrix(mat);
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
cr.set_source(&ptn)?;
@@ -1143,7 +1143,7 @@ impl ImageSurface<Shared> {
{
let cr = cairo::Context::new(&output_surface)?;
let r = cairo::Rectangle::from(bounds);
- cr.rectangle(r.x, r.y, r.width, r.height);
+ cr.rectangle(r.x(), r.y(), r.width(), r.height());
cr.clip();
self.set_as_source_surface(&cr, 0.0, 0.0)?;
diff --git a/src/text.rs b/src/text.rs
index 6115d09a..7b642975 100644
--- a/src/text.rs
+++ b/src/text.rs
@@ -446,7 +446,7 @@ impl PositionedSpan {
let stroke = Stroke::new(&self.values, &params);
- let gravity = layout.context().unwrap().gravity();
+ let gravity = layout.context().gravity();
let bbox = compute_text_box(&layout, x, y, layout_context.transform, gravity);
@@ -1206,7 +1206,7 @@ fn create_pango_layout(
create_pango_context(&layout_context.font_options, &layout_context.transform);
if let XmlLang(Some(ref lang)) = props.xml_lang {
- pango_context.set_language(&pango::Language::from_string(lang.as_str()));
+ pango_context.set_language(Some(&pango::Language::from_string(lang.as_str())));
}
pango_context.set_base_gravity(pango::Gravity::from(layout_context.writing_mode));
diff --git a/tests/src/api.rs b/tests/src/api.rs
index 4d099ba4..e4809696 100644
--- a/tests/src/api.rs
+++ b/tests/src/api.rs
@@ -53,12 +53,7 @@ fn render_layer() {
let res = {
let cr = cairo::Context::new(&output).expect("Failed to create cairo context");
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
renderer.render_layer(&cr, Some("#bar"), &viewport)
};
@@ -109,25 +104,9 @@ fn untransformed_element() {
let (ink_r, logical_r) = renderer.geometry_for_element(Some("#foo")).unwrap();
- assert_eq!(
- ink_r,
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 40.0,
- height: 50.0,
- }
- );
-
- assert_eq!(
- logical_r,
- cairo::Rectangle {
- x: 5.0,
- y: 5.0,
- width: 30.0,
- height: 40.0,
- }
- );
+ assert_eq!(ink_r, cairo::Rectangle::new(0.0, 0.0, 40.0, 50.0));
+
+ assert_eq!(logical_r, cairo::Rectangle::new(5.0, 5.0, 30.0, 40.0));
/* Rendering */
@@ -135,12 +114,7 @@ fn untransformed_element() {
let res = {
let cr = cairo::Context::new(&output).expect("Failed to create cairo context");
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
renderer.render_element(&cr, Some("#foo"), &viewport)
};
@@ -191,12 +165,7 @@ fn set_stylesheet() {
let res = {
let cr = cairo::Context::new(&output).expect("Failed to create cairo context");
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
renderer.render_document(&cr, &viewport)
};
@@ -239,12 +208,7 @@ fn text_doesnt_leave_points_in_current_path() {
assert!(!cr.has_current_point().unwrap());
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
renderer.render_document(&cr, &viewport).unwrap();
diff --git a/tests/src/bugs.rs b/tests/src/bugs.rs
index 2f5927df..d268b4f2 100644
--- a/tests/src/bugs.rs
+++ b/tests/src/bugs.rs
@@ -29,12 +29,7 @@ fn inf_width() {
&svg,
SurfaceSize(150, 150),
|cr| cr.translate(50.0, 50.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 50.0,
- height: 50.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 50.0, 50.0),
)
.unwrap();
}
@@ -57,12 +52,7 @@ fn nonexistent_image_shouldnt_cancel_rendering() {
&svg,
SurfaceSize(50, 50),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 50.0,
- height: 50.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 50.0, 50.0),
)
.unwrap();
@@ -106,12 +96,7 @@ fn href_attribute_overrides_xlink_href() {
&svg,
SurfaceSize(500, 500),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 500.0,
- height: 500.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 500.0, 500.0),
)
.unwrap();
@@ -147,12 +132,7 @@ fn nonexistent_filter_leaves_object_unfiltered() {
&svg,
SurfaceSize(500, 500),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 500.0,
- height: 500.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 500.0, 500.0),
)
.unwrap();
@@ -212,12 +192,7 @@ fn recursive_paint_servers_fallback_to_color() {
&svg,
SurfaceSize(200, 200),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 200.0,
- height: 200.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 200.0, 200.0),
)
.unwrap();
@@ -241,12 +216,7 @@ fn test_renders_as_empty(svg: &SvgHandle, test_name: &str) {
&svg,
SurfaceSize(100, 100),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0),
)
.unwrap();
@@ -336,22 +306,17 @@ fn test_text_bounds(name: &str) {
let (ink_r, _) = renderer
.geometry_for_layer(
Some("#LabelA"),
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 248.0,
- height: 176.0,
- },
+ &cairo::Rectangle::new(0.0, 0.0, 248.0, 176.0),
)
.unwrap();
- assert!(ink_r.x >= 80.0 && ink_r.x < 80.1);
+ assert!(ink_r.x() >= 80.0 && ink_r.x() < 80.1);
// This is kind of suspicious, but we don't know the actual height of the
// text set at y=49 in the test SVG. However, this test is more "text
// elements compute sensible bounds"; the bug #347 was that their ink_rect
// was not being computed correctly at all.
- assert!(ink_r.y > 48.0 && ink_r.y < 49.0);
+ assert!(ink_r.y() > 48.0 && ink_r.y() < 49.0);
}
// https://gitlab.gnome.org/GNOME/librsvg/-/issues/703
@@ -375,12 +340,7 @@ fn switch_element_should_ignore_elements_in_error() {
&svg,
SurfaceSize(100, 100),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0),
)
.unwrap();
@@ -438,12 +398,7 @@ fn accepted_children_inside_clip_path() {
&svg,
SurfaceSize(200, 200),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 200.0,
- height: 200.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 200.0, 200.0),
)
.unwrap();
@@ -491,12 +446,7 @@ fn can_draw_to_non_image_surface() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 200.0,
- height: 200.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 200.0, 200.0);
let output =
cairo::RecordingSurface::create(cairo::Content::ColorAlpha, Some(viewport)).unwrap();
diff --git a/tests/src/errors.rs b/tests/src/errors.rs
index def44f9f..d98eeb67 100644
--- a/tests/src/errors.rs
+++ b/tests/src/errors.rs
@@ -37,15 +37,9 @@ fn rendering_instancing_limit(name: &str) {
// Note that at least 515-patttern-billion-laughs.svg requires a viewport of this size
// or bigger; a smaller one causes the recursive patterns to get so small that they
// are culled out, and so the document doesn't reach the instancing limit.
- match CairoRenderer::new(&handle).render_document(
- &cr,
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 500.0,
- height: 500.0,
- },
- ) {
+ match CairoRenderer::new(&handle)
+ .render_document(&cr, &cairo::Rectangle::new(0.0, 0.0, 500.0, 500.0))
+ {
Ok(_) => (),
Err(RenderingError::LimitExceeded(ImplementationLimit::TooManyReferencedElements)) => (),
_ => panic!("unexpected error code"),
diff --git a/tests/src/filters.rs b/tests/src/filters.rs
index c7fdb760..f756a781 100644
--- a/tests/src/filters.rs
+++ b/tests/src/filters.rs
@@ -26,12 +26,7 @@ fn invalid_filter_reference_cancels_filter_chain() {
&svg,
SurfaceSize(400, 400),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 400.0,
- height: 400.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 400.0, 400.0),
)
.unwrap();
@@ -76,12 +71,7 @@ fn non_filter_reference_cancels_filter_chain() {
&svg,
SurfaceSize(400, 400),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 400.0,
- height: 400.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 400.0, 400.0),
)
.unwrap();
diff --git a/tests/src/geometries.rs b/tests/src/geometries.rs
index 0c25ebce..db1d2cc1 100644
--- a/tests/src/geometries.rs
+++ b/tests/src/geometries.rs
@@ -99,12 +99,7 @@ fn test(svg_filename: &str) {
geom: Rect::from(*expected),
};
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: svg_width,
- height: svg_height,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, svg_width, svg_height);
let (geometry, _) = renderer
.geometry_for_layer(Some(id), &viewport)
diff --git a/tests/src/intrinsic_dimensions.rs b/tests/src/intrinsic_dimensions.rs
index 01f0704a..e7ab4954 100644
--- a/tests/src/intrinsic_dimensions.rs
+++ b/tests/src/intrinsic_dimensions.rs
@@ -38,12 +38,7 @@ fn has_intrinsic_dimensions() {
IntrinsicDimensions {
width: Length::new(10.0, LengthUnit::Cm),
height: Length::new(20.0, LengthUnit::Px),
- vbox: Some(cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 200.0,
- }),
+ vbox: Some(cairo::Rectangle::new(0.0, 0.0, 100.0, 200.0)),
}
);
}
@@ -112,21 +107,11 @@ fn root_geometry_with_percent_viewport() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
- let rect = cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -144,21 +129,11 @@ fn layer_geometry_with_offset_viewport() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
- let rect = cairo::Rectangle {
- x: 110.0,
- y: 120.0,
- width: 30.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(110.0, 120.0, 30.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -176,21 +151,11 @@ fn layer_geometry_with_viewbox_and_offset_viewport() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
- let rect = cairo::Rectangle {
- x: 110.0,
- y: 120.0,
- width: 30.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(110.0, 120.0, 30.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -208,21 +173,11 @@ fn layer_geometry_with_no_width_height() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
- let rect = cairo::Rectangle {
- x: 105.0,
- y: 110.0,
- width: 15.0,
- height: 20.0,
- };
+ let rect = cairo::Rectangle::new(105.0, 110.0, 15.0, 20.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -240,24 +195,14 @@ fn layer_geometry_with_no_intrinsic_dimensions() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
// The SVG document above has no width/height nor viewBox, which means it should
// start with an identity transform for its coordinate space. Since the viewport
// is just offset by (100, 100), this just translates the coordinates of the <rect>.
- let rect = cairo::Rectangle {
- x: 210.0,
- y: 220.0,
- width: 50.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(210.0, 220.0, 50.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -275,23 +220,13 @@ fn layer_geometry_with_percentage_viewport() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 100.0,
- y: 100.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(100.0, 100.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
// Lack of viewBox means we use an identity transform, so the <rect> is just
// offset by (100, 100) because of the viewport.
- let rect = cairo::Rectangle {
- x: 110.0,
- y: 120.0,
- width: 50.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(110.0, 120.0, 50.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -309,23 +244,13 @@ fn layer_geometry_with_percent_viewport() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
let (ink_r, logical_r) = renderer
.geometry_for_layer(Some("#foo"), &viewport)
.unwrap();
- let rect = cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- };
+ let rect = cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -344,23 +269,13 @@ fn layer_geometry_viewport_viewbox() {
let renderer = CairoRenderer::new(&svg);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 400.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 400.0);
let (ink_r, logical_r) = renderer
.geometry_for_layer(Some("#two"), &viewport)
.unwrap();
- let rect = cairo::Rectangle {
- x: 0.0,
- y: 200.0,
- width: 100.0,
- height: 200.0,
- };
+ let rect = cairo::Rectangle::new(0.0, 200.0, 100.0, 200.0);
assert_eq!((ink_r, logical_r), (rect, rect));
}
@@ -374,12 +289,7 @@ fn layer_geometry_for_nonexistent_element() {
)
.unwrap();
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
let renderer = CairoRenderer::new(&svg);
@@ -398,12 +308,7 @@ fn layer_geometry_for_invalid_id() {
)
.unwrap();
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0);
let renderer = CairoRenderer::new(&svg);
assert!(matches!(
@@ -437,12 +342,7 @@ fn render_to_viewport_with_different_size() {
&svg,
SurfaceSize(128, 128),
|_cr| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 128.0,
- height: 128.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 128.0, 128.0),
)
.unwrap();
@@ -478,12 +378,7 @@ fn render_to_offsetted_viewport() {
&svg,
SurfaceSize(100, 100),
|_cr| (),
- cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 48.0,
- height: 48.0,
- },
+ cairo::Rectangle::new(10.0, 20.0, 48.0, 48.0),
)
.unwrap();
@@ -521,12 +416,7 @@ fn render_to_viewport_with_transform() {
&svg,
SurfaceSize(100, 100),
|cr| cr.translate(10.0, 20.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 48.0,
- height: 48.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 48.0, 48.0),
)
.unwrap();
@@ -571,12 +461,7 @@ fn clip_on_transformed_viewport() {
&svg,
SurfaceSize(200, 200),
|cr| cr.translate(50.0, 50.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0),
)
.unwrap();
@@ -637,12 +522,7 @@ fn mask_on_transformed_viewport() {
&svg,
SurfaceSize(200, 200),
|cr| cr.translate(50.0, 50.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0),
)
.unwrap();
diff --git a/tests/src/legacy_sizing.rs b/tests/src/legacy_sizing.rs
index 3446aba3..dd1474fd 100644
--- a/tests/src/legacy_sizing.rs
+++ b/tests/src/legacy_sizing.rs
@@ -18,18 +18,8 @@ fn just_viewbox_uses_viewbox_size() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 200.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 200.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 200.0),
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 200.0),
)
);
}
@@ -50,18 +40,8 @@ fn no_intrinsic_size_uses_element_geometries() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- },
- cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- }
+ cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0),
+ cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0),
)
);
}
@@ -80,18 +60,8 @@ fn hundred_percent_width_height_uses_viewbox() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 200.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 200.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 200.0),
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 200.0),
)
);
}
@@ -112,18 +82,8 @@ fn hundred_percent_width_height_no_viewbox_uses_element_geometries() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- },
- cairo::Rectangle {
- x: 10.0,
- y: 20.0,
- width: 30.0,
- height: 40.0,
- }
+ cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0),
+ cairo::Rectangle::new(10.0, 20.0, 30.0, 40.0),
)
);
}
@@ -153,18 +113,8 @@ fn width_and_viewbox_preserves_aspect_ratio() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 60.0,
- height: 80.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 60.0,
- height: 80.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 60.0, 80.0),
+ cairo::Rectangle::new(0.0, 0.0, 60.0, 80.0),
)
);
}
@@ -188,18 +138,8 @@ fn height_and_viewbox_preserves_aspect_ratio() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 60.0,
- height: 80.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 60.0,
- height: 80.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 60.0, 80.0),
+ cairo::Rectangle::new(0.0, 0.0, 60.0, 80.0),
)
);
}
@@ -220,18 +160,8 @@ fn zero_width_vbox() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 0.0,
- height: 0.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 0.0,
- height: 0.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 0.0, 0.0),
+ cairo::Rectangle::new(0.0, 0.0, 0.0, 0.0)
)
);
}
@@ -252,18 +182,8 @@ fn zero_height_vbox() {
.legacy_layer_geometry(None)
.unwrap(),
(
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 0.0,
- height: 0.0,
- },
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 0.0,
- height: 0.0,
- }
+ cairo::Rectangle::new(0.0, 0.0, 0.0, 0.0),
+ cairo::Rectangle::new(0.0, 0.0, 0.0, 0.0)
)
);
}
diff --git a/tests/src/primitive_geometries.rs b/tests/src/primitive_geometries.rs
index c544f43d..3a9f2391 100644
--- a/tests/src/primitive_geometries.rs
+++ b/tests/src/primitive_geometries.rs
@@ -122,12 +122,7 @@ fn test(svg_filename: &str, geometries_filename: &str) {
for (id, expected) in geometries.0.iter() {
let expected = Element::from_element_geometry(id, expected);
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: svg_width,
- height: svg_height,
- };
+ let viewport = cairo::Rectangle::new(0.0, 0.0, svg_width, svg_height);
let (ink_rect, logical_rect) = renderer
.geometry_for_layer(Some(id), &viewport)
diff --git a/tests/src/primitives.rs b/tests/src/primitives.rs
index e1564bf8..b12906f4 100644
--- a/tests/src/primitives.rs
+++ b/tests/src/primitives.rs
@@ -21,12 +21,7 @@ fn simple_opacity_with_transform() {
&svg,
SurfaceSize(150, 150),
|cr| cr.translate(50.0, 50.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 50.0,
- height: 50.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 50.0, 50.0),
)
.unwrap();
@@ -63,12 +58,7 @@ fn simple_opacity_with_offset_viewport() {
&svg,
SurfaceSize(150, 150),
|_cr| (),
- cairo::Rectangle {
- x: 50.0,
- y: 50.0,
- width: 50.0,
- height: 50.0,
- },
+ cairo::Rectangle::new(50.0, 50.0, 50.0, 50.0),
)
.unwrap();
@@ -109,12 +99,7 @@ fn simple_opacity_with_scale() {
cr.translate(50.0, 50.0);
cr.scale(8.0, 8.0);
},
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 50.0,
- height: 50.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 50.0, 50.0),
)
.unwrap();
@@ -158,12 +143,7 @@ fn markers_with_scale() {
|cr| {
cr.scale(4.0, 4.0);
},
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 200.0,
- height: 200.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 200.0, 200.0),
)
.unwrap();
@@ -211,12 +191,7 @@ fn opacity_inside_transformed_group() {
&svg,
SurfaceSize(140, 140),
|cr| cr.translate(20.0, 20.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0),
)
.unwrap();
@@ -258,12 +233,7 @@ fn compound_opacity() {
&svg,
SurfaceSize(500, 380),
|cr| cr.translate(10.0, 10.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 480.0,
- height: 360.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 480.0, 360.0),
)
.unwrap();
@@ -328,12 +298,7 @@ fn nested_masks() {
&svg,
SurfaceSize(321 + 20, 27 + 20),
|cr| cr.translate(10.0, 10.0),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 321.0,
- height: 27.0,
- },
+ cairo::Rectangle::new(0.0, 0.0, 321.0, 27.0),
)
.unwrap();
diff --git a/tests/src/reference.rs b/tests/src/reference.rs
index 2234e130..46fb9dc2 100644
--- a/tests/src/reference.rs
+++ b/tests/src/reference.rs
@@ -71,12 +71,7 @@ fn reference_test(path: &str) {
renderer
.render_document(
&cr,
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: f64::from(width),
- height: f64::from(height),
- },
+ &cairo::Rectangle::new(0.0, 0.0, f64::from(width), f64::from(height)),
)
.unwrap();
}
@@ -141,7 +136,7 @@ fn image_size(dim: IntrinsicDimensions, dpi: f64) -> (i32, i32) {
(Length { length: w, unit: Percent },
Length { length: h, unit: Percent }, vbox) if w == 1.0 && h == 1.0 => {
if let Some(vbox) = vbox {
- (vbox.width, vbox.height)
+ (vbox.width(), vbox.height())
} else {
panic!("SVG with percentage width/height must have a viewBox");
}
diff --git a/tests/src/reference_utils.rs b/tests/src/reference_utils.rs
index 69810e0d..ecb093fe 100644
--- a/tests/src/reference_utils.rs
+++ b/tests/src/reference_utils.rs
@@ -200,12 +200,7 @@ macro_rules! test_compare_render_output {
&svg,
SurfaceSize(sx, sy),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: sx as f64,
- height: sy as f64,
- },
+ cairo::Rectangle::new(0.0, 0.0, f64::from(sx), f64::from(sy)),
)
.unwrap();
@@ -214,12 +209,7 @@ macro_rules! test_compare_render_output {
&reference,
SurfaceSize(sx, sy),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: sx as f64,
- height: sy as f64,
- },
+ cairo::Rectangle::new(0.0, 0.0, f64::from(sx), f64::from(sy)),
)
.unwrap();
@@ -278,12 +268,7 @@ macro_rules! test_svg_reference {
&svg,
SurfaceSize(pixels.0.ceil() as i32, pixels.1.ceil() as i32),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: pixels.0,
- height: pixels.1,
- },
+ cairo::Rectangle::new(0.0, 0.0, pixels.0, pixels.1),
)
.unwrap();
@@ -291,12 +276,7 @@ macro_rules! test_svg_reference {
&reference,
SurfaceSize(pixels.0.ceil() as i32, pixels.1.ceil() as i32),
|_| (),
- cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: pixels.0,
- height: pixels.1,
- },
+ cairo::Rectangle::new(0.0, 0.0, pixels.0, pixels.1),
)
.unwrap();
diff --git a/tests/src/render_crash.rs b/tests/src/render_crash.rs
index f89285d3..c00e5005 100644
--- a/tests/src/render_crash.rs
+++ b/tests/src/render_crash.rs
@@ -19,13 +19,6 @@ fn render_crash(path: &str) {
let cr = cairo::Context::new(&surface).expect("Failed to create a cairo context");
// We just test for crashes during rendering, and don't care about success/error.
- let _ = CairoRenderer::new(&handle).render_document(
- &cr,
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: 100.0,
- height: 100.0,
- },
- );
+ let _ = CairoRenderer::new(&handle)
+ .render_document(&cr, &cairo::Rectangle::new(0.0, 0.0, 100.0, 100.0));
}
diff --git a/tests/src/text.rs b/tests/src/text.rs
index e0228523..45bb01e2 100644
--- a/tests/src/text.rs
+++ b/tests/src/text.rs
@@ -83,21 +83,16 @@ test_svg_reference!(
);
fn rect(x: f64, y: f64, width: f64, height: f64) -> cairo::Rectangle {
- cairo::Rectangle {
- x,
- y,
- width,
- height,
- }
+ cairo::Rectangle::new(x, y, width, height)
}
fn rectangle_approx_eq(a: &cairo::Rectangle, b: &cairo::Rectangle) -> bool {
// FIXME: this is super fishy; shouldn't we be using 2x the epsilon against the width/height
// instead of the raw coordinates?
- approx_eq!(f64, a.x, b.x)
- && approx_eq!(f64, a.y, b.y)
- && approx_eq!(f64, a.width, b.width)
- && approx_eq!(f64, a.height, b.height)
+ approx_eq!(f64, a.x(), b.x())
+ && approx_eq!(f64, a.y(), b.y())
+ && approx_eq!(f64, a.width(), b.width())
+ && approx_eq!(f64, a.height(), b.height())
}
// Test that the computed geometry of text layers is as expected.
diff --git a/tests/src/utils.rs b/tests/src/utils.rs
index fb4ad2de..f01d1c00 100644
--- a/tests/src/utils.rs
+++ b/tests/src/utils.rs
@@ -92,7 +92,7 @@ mod pango_ft2 {
pango_fc_font_map_set_config(raw_font_map as *mut _, config);
fontconfig::FcConfigDestroy(config);
- FontMap::set_default(Some(font_map.downcast::<pangocairo::FontMap>().unwrap()));
+ FontMap::set_default(Some(&font_map.downcast::<pangocairo::FontMap>().unwrap()));
}
}