stbi/sokol: fix png loading bug
parent
852d302b87
commit
138da8e130
|
@ -9490,8 +9490,7 @@ _SOKOL_PRIVATE void _sg_mtl_copy_image_content(const _sg_image_t* img, __unsafe_
|
|||
for (int slice_index = 0; slice_index < num_slices; slice_index++) {
|
||||
const int mtl_slice_index = (img->cmn.type == SG_IMAGETYPE_CUBE) ? face_index : slice_index;
|
||||
const int slice_offset = slice_index * bytes_per_slice;
|
||||
// SOKOL_ASSERT((slice_offset + bytes_per_slice) <= (int)content->subimage[face_index][mip_index].size);
|
||||
if (!((slice_offset + bytes_per_slice) <= (int)content->subimage[face_index][mip_index].size)) continue;
|
||||
SOKOL_ASSERT((slice_offset + bytes_per_slice) <= (int)content->subimage[face_index][mip_index].size);
|
||||
[mtl_tex replaceRegion:region
|
||||
mipmapLevel:mip_index
|
||||
slice:mtl_slice_index
|
||||
|
|
|
@ -39,8 +39,13 @@ pub fn load(path string) ?Image {
|
|||
ext: ext
|
||||
data: 0
|
||||
}
|
||||
flag := if ext == 'png' { C.STBI_rgb_alpha } else { 0 }
|
||||
res.data = C.stbi_load(path.str, &res.width, &res.height, &res.nr_channels, flag)
|
||||
// flag := if ext == 'png' { C.STBI_rgb_alpha } else { 0 }
|
||||
desired_channels := if ext == 'png' { 4 } else { 0 }
|
||||
res.data = C.stbi_load(path.str, &res.width, &res.height, &res.nr_channels, desired_channels)
|
||||
if desired_channels == 4 && res.nr_channels == 3 {
|
||||
// Fix an alpha png bug
|
||||
res.nr_channels = 4
|
||||
}
|
||||
if isnil(res.data) {
|
||||
return error('stbi image failed to load from "$path"')
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue