From 1e03a97e73cd1cd7f655cdaf7cc75069ff9a84bc Mon Sep 17 00:00:00 2001 From: Jakob Hellermann Date: Thu, 16 Sep 2021 22:50:21 +0000 Subject: [PATCH] fix `Default` implementation of `Image` so that size and data match (#2833) Before using this image resulted in an `Error in Queue::write_texture: copy of 0..4 would end up overrunning the bounds of the Source buffer of size 0` --- pipelined/bevy_render2/src/texture/image.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pipelined/bevy_render2/src/texture/image.rs b/pipelined/bevy_render2/src/texture/image.rs index 6141669472..11eb06fcff 100644 --- a/pipelined/bevy_render2/src/texture/image.rs +++ b/pipelined/bevy_render2/src/texture/image.rs @@ -3,6 +3,7 @@ use crate::{ render_asset::RenderAsset, render_resource::{Sampler, Texture, TextureView}, renderer::{RenderDevice, RenderQueue}, + texture::BevyDefault, }; use bevy_reflect::TypeUuid; use thiserror::Error; @@ -25,15 +26,17 @@ pub struct Image { impl Default for Image { fn default() -> Self { + let format = wgpu::TextureFormat::bevy_default(); + let data = vec![1; format.pixel_size() as usize]; Image { - data: Default::default(), + data, texture_descriptor: wgpu::TextureDescriptor { size: wgpu::Extent3d { width: 1, height: 1, depth_or_array_layers: 1, }, - format: wgpu::TextureFormat::Rgba8UnormSrgb, + format, dimension: wgpu::TextureDimension::D2, label: None, mip_level_count: 1,