Commit dca97b2
authored
Fix WebGL render target resizing (#3344)
Fix `WebGLRenderTarget` rendering after its size changes.
`Image.adoptTextureFrom` transfers ownership of the WebGL texture to
Skia, so closing the old image deletes that texture. The previous resize
path then tried to allocate storage on the deleted texture, which left
the framebuffer incomplete. This change creates a texture for each size
generation and releases the previous texture through one path after
notifying borrowers.
PR #3323 and its Skiko update are now on `jb-main`. This PR is the
focused resize follow-up.
## Testing
In this repo:
- `./gradlew :compose:ui:ui:jsBrowserTest --no-daemon
--no-configuration-cache`
- `./gradlew :mpp:publishComposeJbToMavenLocal -Pcompose.platforms=web
-Pjetbrains.publication.libraries=COMPOSE --no-daemon
--no-configuration-cache`
In maplibre/maplibre-compose#1114:
- MapLibre Compose demo startup and resize in Chromium, Safari, and
Firefox.
- MapLibre Compose JS browser suite: 204 tests, no failures or skips.
## Release Notes
N/A1 parent f4ceedb commit dca97b2
2 files changed
Lines changed: 110 additions & 38 deletions
File tree
- compose/ui/ui/src
- webMain/kotlin/androidx/compose/ui/platform/webgl
- webTest/kotlin/androidx/compose/ui/platform/webgl
Lines changed: 51 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | 37 | | |
39 | 38 | | |
40 | 39 | | |
| |||
137 | 136 | | |
138 | 137 | | |
139 | 138 | | |
| 139 | + | |
| 140 | + | |
140 | 141 | | |
141 | 142 | | |
142 | 143 | | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
148 | 149 | | |
149 | | - | |
150 | | - | |
151 | | - | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
152 | 159 | | |
153 | 160 | | |
154 | 161 | | |
| |||
181 | 188 | | |
182 | 189 | | |
183 | 190 | | |
184 | | - | |
| 191 | + | |
185 | 192 | | |
186 | 193 | | |
187 | 194 | | |
| |||
265 | 272 | | |
266 | 273 | | |
267 | 274 | | |
268 | | - | |
269 | | - | |
| 275 | + | |
270 | 276 | | |
271 | 277 | | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
276 | 286 | | |
277 | 287 | | |
278 | 288 | | |
| |||
284 | 294 | | |
285 | 295 | | |
286 | 296 | | |
287 | | - | |
| 297 | + | |
288 | 298 | | |
289 | 299 | | |
290 | 300 | | |
| |||
303 | 313 | | |
304 | 314 | | |
305 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
306 | 332 | | |
307 | 333 | | |
308 | 334 | | |
| |||
312 | 338 | | |
313 | 339 | | |
314 | 340 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
319 | 349 | | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | 350 | | |
326 | 351 | | |
327 | 352 | | |
| |||
Lines changed: 59 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| 45 | + | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| |||
52 | 54 | | |
53 | 55 | | |
54 | 56 | | |
| 57 | + | |
55 | 58 | | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
62 | 69 | | |
63 | 70 | | |
64 | 71 | | |
| |||
173 | 180 | | |
174 | 181 | | |
175 | 182 | | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | 183 | | |
180 | 184 | | |
181 | 185 | | |
182 | 186 | | |
183 | | - | |
184 | 187 | | |
185 | 188 | | |
186 | 189 | | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
187 | 200 | | |
188 | 201 | | |
189 | 202 | | |
| |||
202 | 215 | | |
203 | 216 | | |
204 | 217 | | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
205 | 223 | | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
206 | 240 | | |
207 | 241 | | |
208 | 242 | | |
| |||
213 | 247 | | |
214 | 248 | | |
215 | 249 | | |
216 | | - | |
| 250 | + | |
217 | 251 | | |
218 | 252 | | |
219 | 253 | | |
| 254 | + | |
220 | 255 | | |
221 | 256 | | |
222 | | - | |
| 257 | + | |
| 258 | + | |
223 | 259 | | |
224 | 260 | | |
225 | 261 | | |
| |||
261 | 297 | | |
262 | 298 | | |
263 | 299 | | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
264 | 311 | | |
265 | 312 | | |
266 | 313 | | |
| |||
0 commit comments