diff options
author | Glenn Watson <github@intuitionlibrary.com> | 2017-08-08 07:51:30 +1000 |
---|---|---|
committer | Glenn Watson <github@intuitionlibrary.com> | 2017-08-09 07:05:05 +1000 |
commit | f6a9f15fed1a88949ea45875adc44b48c419f87b (patch) | |
tree | 9aa2a85547c3b6e2e52849d6569499c5821d8744 /components/canvas/webgl_paint_thread.rs | |
parent | 689dadc75174eff892e1da9d072ee9f109ede925 (diff) | |
download | servo-f6a9f15fed1a88949ea45875adc44b48c419f87b.tar.gz servo-f6a9f15fed1a88949ea45875adc44b48c419f87b.zip |
Update WR.
* CPU text run optimizations.
* Linux subpixel positioning / rasterization.
* Update debug flags API.
* Update to resource transactions API.
Diffstat (limited to 'components/canvas/webgl_paint_thread.rs')
-rw-r--r-- | components/canvas/webgl_paint_thread.rs | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/components/canvas/webgl_paint_thread.rs b/components/canvas/webgl_paint_thread.rs index abd6e4d00a0..2b6819effba 100644 --- a/components/canvas/webgl_paint_thread.rs +++ b/components/canvas/webgl_paint_thread.rs @@ -281,26 +281,30 @@ impl WebGLPaintThread { }; let data = webrender_api::ImageData::Raw(Arc::new(pixels)); + let mut updates = webrender_api::ResourceUpdates::new(); + match *image_key { Some(image_key) => { - webrender_api.update_image(image_key, - descriptor, - data, - None); + updates.update_image(image_key, + descriptor, + data, + None); } None => { *image_key = Some(webrender_api.generate_image_key()); - webrender_api.add_image(image_key.unwrap(), - descriptor, - data, - None); + updates.add_image(image_key.unwrap(), + descriptor, + data, + None); } } if let Some(image_key) = mem::replace(very_old_image_key, old_image_key.take()) { - webrender_api.delete_image(image_key); + updates.delete_image(image_key); } + webrender_api.update_resources(updates); + let image_data = CanvasImageData { image_key: image_key.unwrap(), }; @@ -357,15 +361,19 @@ impl Drop for WebGLPaintThread { very_old_image_key, .. } = self.data { + let mut updates = webrender_api::ResourceUpdates::new(); + if let Some(image_key) = image_key { - webrender_api.delete_image(image_key); + updates.delete_image(image_key); } if let Some(image_key) = old_image_key { - webrender_api.delete_image(image_key); + updates.delete_image(image_key); } if let Some(image_key) = very_old_image_key { - webrender_api.delete_image(image_key); + updates.delete_image(image_key); } + + webrender_api.update_resources(updates); } } } |