Bug 1509592 - Update webrender to commit 7051f18fdcfbe60ecdbaeaa8e53c4ba98f2037a1 (WR PR #3344). r=kats

https://github.com/servo/webrender/pull/3344

Differential Revision: https://phabricator.services.mozilla.com/D12822

--HG--
extra : moz-landing-system : lando
This commit is contained in:
WR Updater Bot 2018-11-24 12:56:25 +00:00
parent e88550b119
commit 305b751fe8
2 changed files with 20 additions and 8 deletions

View File

@ -1 +1 @@
af2b372624db589115511b4705849a33e6acd35d 7051f18fdcfbe60ecdbaeaa8e53c4ba98f2037a1

View File

@ -1942,14 +1942,13 @@ impl ResourceCache {
entry.insert(short_path); entry.insert(short_path);
} }
CachedImageData::Blob => { CachedImageData::Blob => {
assert_eq!(template.tiling, None);
let blob_request_params = &[ let blob_request_params = &[
BlobImageParams { BlobImageParams {
request: BlobImageRequest { request: BlobImageRequest {
key: BlobImageKey(key), key: BlobImageKey(key),
//TODO: support tiled blob images //TODO: support tiled blob images
// https://github.com/servo/webrender/issues/2236 // https://github.com/servo/webrender/issues/2236
tile: None, tile: template.tiling.map(|_| TileOffset::origin()),
}, },
descriptor: BlobImageDescriptor { descriptor: BlobImageDescriptor {
rect: blob_size(desc.size).into(), rect: blob_size(desc.size).into(),
@ -1959,11 +1958,24 @@ impl ResourceCache {
} }
]; ];
let blob_handler = self.blob_image_handler.as_mut().unwrap(); let requires_tiling = match template.tiling {
blob_handler.prepare_resources(&self.resources, blob_request_params); Some(tile_size) => desc.size.width > tile_size as i32 || desc.size.height > tile_size as i32,
let mut rasterizer = blob_handler.create_blob_rasterizer(); None => false,
let (_, result) = rasterizer.rasterize(blob_request_params, false).pop().unwrap(); };
let result = result.expect("Blob rasterization failed");
let result = if requires_tiling {
warn!("Tiled blob images aren't supported yet");
RasterizedBlobImage {
rasterized_rect: desc.size.into(),
data: Arc::new(vec![0; desc.compute_total_size() as usize])
}
} else {
let blob_handler = self.blob_image_handler.as_mut().unwrap();
blob_handler.prepare_resources(&self.resources, blob_request_params);
let mut rasterizer = blob_handler.create_blob_rasterizer();
let (_, result) = rasterizer.rasterize(blob_request_params, false).pop().unwrap();
result.expect("Blob rasterization failed")
};
assert_eq!(result.rasterized_rect.size, desc.size); assert_eq!(result.rasterized_rect.size, desc.size);
assert_eq!(result.data.len(), desc.compute_total_size() as usize); assert_eq!(result.data.len(), desc.compute_total_size() as usize);