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

@ -268,13 +268,13 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
fn remove_webgl_context(&mut self, context_id: WebGLContextId) {
// Release webrender image keys.
if let Some(info) = self.cached_context_info.remove(&context_id) {
let mut updates = webrender_api::ResourceUpdates::new();
let mut txn = webrender_api::Transaction::new();
if let Some(image_key) = info.image_key {
updates.delete_image(image_key);
txn.delete_image(image_key);
}
self.webrender_api.update_resources(updates)
self.webrender_api.update_resources(txn.resource_updates)
}
// Release GL context.
@ -423,12 +423,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
let data = Self::external_image_data(context_id);
let image_key = webrender_api.generate_image_key();
let mut updates = webrender_api::ResourceUpdates::new();
updates.add_image(image_key,
descriptor,
data,
None);
webrender_api.update_resources(updates);
let mut txn = webrender_api::Transaction::new();
txn.add_image(image_key, descriptor, data, None);
webrender_api.update_resources(txn.resource_updates);
image_key
}
@ -442,12 +439,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
let descriptor = Self::image_descriptor(size, alpha);
let data = Self::external_image_data(context_id);
let mut updates = webrender_api::ResourceUpdates::new();
updates.update_image(image_key,
descriptor,
data,
None);
webrender_api.update_resources(updates);
let mut txn = webrender_api::Transaction::new();
txn.update_image(image_key, descriptor, data, None);
webrender_api.update_resources(txn.resource_updates);
}
/// Creates a `webrender_api::ImageKey` that uses raw pixels.
@ -459,12 +453,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
let data = webrender_api::ImageData::new(data);
let image_key = webrender_api.generate_image_key();
let mut updates = webrender_api::ResourceUpdates::new();
updates.add_image(image_key,
descriptor,
data,
None);
webrender_api.update_resources(updates);
let mut txn = webrender_api::Transaction::new();
txn.add_image(image_key, descriptor, data, None);
webrender_api.update_resources(txn.resource_updates);
image_key
}
@ -478,19 +469,15 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
let descriptor = Self::image_descriptor(size, alpha);
let data = webrender_api::ImageData::new(data);
let mut updates = webrender_api::ResourceUpdates::new();
updates.update_image(image_key,
descriptor,
data,
None);
webrender_api.update_resources(updates);
let mut txn = webrender_api::Transaction::new();
txn.update_image(image_key, descriptor, data, None);
webrender_api.update_resources(txn.resource_updates);
}
/// Helper function to create a `webrender_api::ImageDescriptor`.
fn image_descriptor(size: Size2D<i32>, alpha: bool) -> webrender_api::ImageDescriptor {
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,