mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
@@ -87,7 +87,7 @@ fn main() {
|
||||
// Write the buffer as a PNG
|
||||
output_buffer.map_read_async(
|
||||
0,
|
||||
(size * size) as u64 * size_of::<u32>() as u64,
|
||||
(size * size) as usize * size_of::<u32>(),
|
||||
move |result: wgpu::BufferMapAsyncResult<&[u8]>| {
|
||||
let mut png_encoder = png::Encoder::new(File::create("red.png").unwrap(), size, size);
|
||||
png_encoder.set_depth(png::BitDepth::Eight);
|
||||
|
||||
@@ -92,7 +92,7 @@ fn main() {
|
||||
|
||||
queue.submit(&[encoder.finish()]);
|
||||
|
||||
staging_buffer.map_read_async(0, size, |result: wgpu::BufferMapAsyncResult<&[u32]>| {
|
||||
staging_buffer.map_read_async(0, numbers.len(), |result: wgpu::BufferMapAsyncResult<&[u32]>| {
|
||||
if let Ok(mapping) = result {
|
||||
println!("Times: {:?}", mapping.data);
|
||||
}
|
||||
|
||||
@@ -906,7 +906,7 @@ where
|
||||
}
|
||||
|
||||
impl Buffer {
|
||||
pub fn map_read_async<T, F>(&self, start: BufferAddress, size: BufferAddress, callback: F)
|
||||
pub fn map_read_async<T, F>(&self, start: BufferAddress, count: usize, callback: F)
|
||||
where
|
||||
T: 'static + FromBytes,
|
||||
F: FnOnce(BufferMapAsyncResult<&[T]>) + 'static,
|
||||
@@ -936,6 +936,8 @@ impl Buffer {
|
||||
}
|
||||
}
|
||||
|
||||
let size = (count * std::mem::size_of::<T>()) as BufferAddress;
|
||||
|
||||
let user_data = Box::new(BufferMapReadAsyncUserData {
|
||||
size,
|
||||
callback,
|
||||
@@ -951,7 +953,7 @@ impl Buffer {
|
||||
);
|
||||
}
|
||||
|
||||
pub fn map_write_async<T, F>(&self, start: BufferAddress, size: BufferAddress, callback: F)
|
||||
pub fn map_write_async<T, F>(&self, start: BufferAddress, count: usize, callback: F)
|
||||
where
|
||||
T: 'static + AsBytes + FromBytes,
|
||||
F: FnOnce(BufferMapAsyncResult<&mut [T]>) + 'static,
|
||||
@@ -981,6 +983,8 @@ impl Buffer {
|
||||
}
|
||||
}
|
||||
|
||||
let size = (count * std::mem::size_of::<T>()) as BufferAddress;
|
||||
|
||||
let user_data = Box::new(BufferMapWriteAsyncUserData {
|
||||
size,
|
||||
callback,
|
||||
|
||||
Reference in New Issue
Block a user