mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Update WR.
* CPU text run optimizations. * Linux subpixel positioning / rasterization. * Update debug flags API. * Update to resource transactions API.
This commit is contained in:
parent
689dadc751
commit
f6a9f15fed
9 changed files with 74 additions and 48 deletions
|
@ -585,28 +585,32 @@ impl<'a> CanvasPaintThread<'a> {
|
|||
};
|
||||
let data = webrender_api::ImageData::Raw(Arc::new(element.into()));
|
||||
|
||||
let mut updates = webrender_api::ResourceUpdates::new();
|
||||
|
||||
match self.image_key {
|
||||
Some(image_key) => {
|
||||
debug!("Updating image {:?}.", image_key);
|
||||
self.webrender_api.update_image(image_key,
|
||||
descriptor,
|
||||
data,
|
||||
None);
|
||||
updates.update_image(image_key,
|
||||
descriptor,
|
||||
data,
|
||||
None);
|
||||
}
|
||||
None => {
|
||||
self.image_key = Some(self.webrender_api.generate_image_key());
|
||||
debug!("New image {:?}.", self.image_key);
|
||||
self.webrender_api.add_image(self.image_key.unwrap(),
|
||||
descriptor,
|
||||
data,
|
||||
None);
|
||||
updates.add_image(self.image_key.unwrap(),
|
||||
descriptor,
|
||||
data,
|
||||
None);
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(image_key) = mem::replace(&mut self.very_old_image_key, self.old_image_key.take()) {
|
||||
self.webrender_api.delete_image(image_key);
|
||||
updates.delete_image(image_key);
|
||||
}
|
||||
|
||||
self.webrender_api.update_resources(updates);
|
||||
|
||||
let data = CanvasImageData {
|
||||
image_key: self.image_key.unwrap(),
|
||||
};
|
||||
|
@ -764,12 +768,16 @@ impl<'a> CanvasPaintThread<'a> {
|
|||
|
||||
impl<'a> Drop for CanvasPaintThread<'a> {
|
||||
fn drop(&mut self) {
|
||||
let mut updates = webrender_api::ResourceUpdates::new();
|
||||
|
||||
if let Some(image_key) = self.old_image_key.take() {
|
||||
self.webrender_api.delete_image(image_key);
|
||||
updates.delete_image(image_key);
|
||||
}
|
||||
if let Some(image_key) = self.very_old_image_key.take() {
|
||||
self.webrender_api.delete_image(image_key);
|
||||
updates.delete_image(image_key);
|
||||
}
|
||||
|
||||
self.webrender_api.update_resources(updates);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue