Commit ac39010
authored
fix(skia): migrate to skia-safe 0.99 so docs.rs can build (#216)
* fix(skia): migrate to skia-safe 0.99 so docs.rs can build
skia-bindings 0.82.0 has a broken docs.rs path: it detects the build, announces
it is copying bindings_docs.rs into OUT_DIR, and the copy fails with NotFound.
The build script exits 1 and rustdoc never runs, which is why 0.6.1 published
with no documentation. skia-safe 0.82.0 has no docs there either, for the same
reason; 0.99.0 does.
The only breaking change that reaches us is Path becoming immutable: Skia moved
construction into SkPathBuilder, so the mutating methods left Path. Of the 99
files that touch skia_safe, 22 needed work — Canvas, Paint, Surface, ImageInfo,
FontStyle, Shader and Data crossed seventeen minor versions unchanged.
Three details worth keeping:
- add_rect, add_oval and add_rrect gained a third argument (start_index);
add_circle already had three and is untouched.
- Path::from_svg still returns a real Path. A blanket rewrite of draw_path(&path
adds a .detach() there that does not compile — and would have been worse if it
had.
- chart/radar.rs draws one path twice, filled then stroked. That is the single
place snapshot() is correct and detach() would empty the builder too early.
get_point is replaced by points().first(), same semantics.
The 25 remaining deprecations are all on the gradient shader API and are held
under narrowly scoped allow(deprecated) rather than migrated: the replacement
drops TileMode from the signature, so moving it blind changes rendering in ways
that look plausible. Tracked in #215.
Closes #214
* refactor(skia): migrate off the deprecated gradient shader API
Deprecated in skia-safe 0.93. Not a rename: Skia gained CSS Color 4 style
interpolation, and the old `flags: u32` could only carry one boolean. The new
model needs three orthogonal parameters — premultiplied or not, which colour
space to interpolate in, and how to traverse hue — so the API was restructured
around Gradient { Colors, Interpolation }.
Rendering is preserved by construction rather than by hope: the old
Flags::default() was empty(), the new Interpolation::default() is in_premul: No,
and no site in this repository ever passed flags explicitly. Every call site uses
Interpolation::default(), and no colour space is introduced anywhere it was not
already present — shape.rs keeps the srgb space it declared before.
TileMode did not disappear, it moved into Colors alongside the colours it applies
to.
One behaviour was implicit and had to be made explicit: the deprecated sweep()
took an optional angle range, and None meant a full 0..360 turn. The replacement
makes the tuple mandatory, so that range is now written at the call site.
Closes #2151 parent c5a61f2 commit ac39010
30 files changed
Lines changed: 289 additions & 252 deletions
File tree
- crates
- rustmotion-components
- src
- chart
- rustmotion-core
- src/engine
- renderer
- rustmotion
- src/engine/render
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
| 149 | + | |
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
| 92 | + | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
132 | | - | |
| 132 | + | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
157 | | - | |
| 157 | + | |
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
70 | | - | |
71 | | - | |
| 71 | + | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
102 | 103 | | |
103 | 104 | | |
104 | 105 | | |
105 | | - | |
| 106 | + | |
106 | 107 | | |
107 | 108 | | |
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
112 | | - | |
| 113 | + | |
113 | 114 | | |
114 | 115 | | |
115 | 116 | | |
| |||
168 | 169 | | |
169 | 170 | | |
170 | 171 | | |
171 | | - | |
172 | | - | |
| 172 | + | |
| 173 | + | |
173 | 174 | | |
174 | 175 | | |
175 | 176 | | |
| |||
227 | 228 | | |
228 | 229 | | |
229 | 230 | | |
230 | | - | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
231 | 235 | | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
| 236 | + | |
236 | 237 | | |
237 | 238 | | |
238 | 239 | | |
| |||
241 | 242 | | |
242 | 243 | | |
243 | 244 | | |
244 | | - | |
| 245 | + | |
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
248 | 249 | | |
249 | 250 | | |
250 | 251 | | |
251 | 252 | | |
252 | | - | |
| 253 | + | |
253 | 254 | | |
254 | 255 | | |
255 | 256 | | |
| |||
0 commit comments