rust/lib-hedgewars-engine/src/render/gl.rs
changeset 16084 36862a9ec59b
parent 15764 b10bbfb2b354
equal deleted inserted replaced
16083:004258297037 16084:36862a9ec59b
    89     value.map_or(0, |v| v.get())
    89     value.map_or(0, |v| v.get())
    90 }
    90 }
    91 
    91 
    92 fn is_out_of_bounds(data: &[u8], data_stride: Option<NonZeroU32>, texture_size: Size) -> bool {
    92 fn is_out_of_bounds(data: &[u8], data_stride: Option<NonZeroU32>, texture_size: Size) -> bool {
    93     let data_stride = get_u32(data_stride);
    93     let data_stride = get_u32(data_stride);
    94     data_stride == 0 && texture_size.area() * 4 > data.len()
    94     data_stride == 0 && texture_size.area() * 4 > data.len() as u32
    95         || data_stride != 0
    95         || data_stride != 0
    96             && texture_size.width > data_stride as usize
    96             && texture_size.width > data_stride
    97             && (texture_size.height * data_stride as usize) * 4 > data.len()
    97             && (texture_size.height * data_stride) * 4 > data.len() as u32
    98 }
    98 }
    99 
    99 
   100 impl Texture2D {
   100 impl Texture2D {
   101     pub fn new(size: Size, internal_format: TextureInternalFormat, filter: TextureFilter) -> Self {
   101     pub fn new(size: Size, internal_format: TextureInternalFormat, filter: TextureFilter) -> Self {
   102         if let Some(handle) = new_texture() {
   102         if let Some(handle) = new_texture() {
   191             }
   191             }
   192         }
   192         }
   193     }
   193     }
   194 
   194 
   195     pub fn retrieve(&self, data: &mut [u8]) {
   195     pub fn retrieve(&self, data: &mut [u8]) {
   196         if self.size.area() * 4 > data.len() {
   196         if self.size.area() * 4 > data.len() as u32 {
   197             return;
   197             return;
   198         }
   198         }
   199 
   199 
   200         if let Some(handle) = self.handle {
   200         if let Some(handle) = self.handle {
   201             unsafe {
   201             unsafe {