Update WR (transaction API change)

This commit is contained in:
Glenn Watson 2018-06-01 15:25:23 +10:00
parent c2d3f2a40f
commit 823f3e2eb1
11 changed files with 56 additions and 87 deletions

View file

@ -416,8 +416,7 @@ impl<'a> CanvasData<'a> {
let size = self.drawtarget.get_size();
let descriptor = webrender_api::ImageDescriptor {
width: size.width as u32,
height: size.height as u32,
size: webrender_api::DeviceUintSize::new(size.width as u32, size.height as u32),
stride: None,
format: webrender_api::ImageFormat::BGRA8,
offset: 0,
@ -426,31 +425,25 @@ impl<'a> CanvasData<'a> {
};
let data = webrender_api::ImageData::Raw(Arc::new(element.into()));
let mut updates = webrender_api::ResourceUpdates::new();
let mut txn = webrender_api::Transaction::new();
match self.image_key {
Some(image_key) => {
debug!("Updating image {:?}.", image_key);
updates.update_image(image_key,
descriptor,
data,
None);
txn.update_image(image_key, descriptor, data, None);
}
None => {
self.image_key = Some(self.webrender_api.generate_image_key());
debug!("New image {:?}.", self.image_key);
updates.add_image(self.image_key.unwrap(),
descriptor,
data,
None);
txn.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()) {
updates.delete_image(image_key);
txn.delete_image(image_key);
}
self.webrender_api.update_resources(updates);
self.webrender_api.update_resources(txn.resource_updates);
let data = CanvasImageData {
image_key: self.image_key.unwrap(),
@ -647,16 +640,16 @@ impl<'a> CanvasData<'a> {
impl<'a> Drop for CanvasData<'a> {
fn drop(&mut self) {
let mut updates = webrender_api::ResourceUpdates::new();
let mut txn = webrender_api::Transaction::new();
if let Some(image_key) = self.old_image_key.take() {
updates.delete_image(image_key);
txn.delete_image(image_key);
}
if let Some(image_key) = self.very_old_image_key.take() {
updates.delete_image(image_key);
txn.delete_image(image_key);
}
self.webrender_api.update_resources(updates);
self.webrender_api.update_resources(txn.resource_updates);
}
}