Make HTMLCanvasElement::fetch_all_data return a shared memory blob

This commit is contained in:
Anthony Ramine 2018-11-21 12:51:49 +01:00
parent 804d964b7d
commit 9a8d03a0f3
5 changed files with 21 additions and 23 deletions

View file

@ -569,12 +569,10 @@ impl WebGLRenderingContext {
return Err(Error::Security);
}
if let Some((data, size)) = canvas.fetch_all_data() {
TexPixels::new(
IpcSharedMemory::from_bytes(&data),
size,
PixelFormat::BGRA8,
true,
)
let data = data.unwrap_or_else(|| {
IpcSharedMemory::from_bytes(&vec![0; size.area() as usize * 4])
});
TexPixels::new(data, size, PixelFormat::BGRA8, true)
} else {
return Ok(None);
}