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++) {
|
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 mtl_slice_index = (img->cmn.type == SG_IMAGETYPE_CUBE) ? face_index : slice_index;
|
||||||
const int slice_offset = slice_index * bytes_per_slice;
|
const int slice_offset = slice_index * bytes_per_slice;
|
||||||
// SOKOL_ASSERT((slice_offset + bytes_per_slice) <= (int)content->subimage[face_index][mip_index].size);
|
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;
|
|
||||||
[mtl_tex replaceRegion:region
|
[mtl_tex replaceRegion:region
|
||||||
mipmapLevel:mip_index
|
mipmapLevel:mip_index
|
||||||
slice:mtl_slice_index
|
slice:mtl_slice_index
|
||||||
|
|
|
@ -39,8 +39,13 @@ pub fn load(path string) ?Image {
|
||||||
ext: ext
|
ext: ext
|
||||||
data: 0
|
data: 0
|
||||||
}
|
}
|
||||||
flag := if ext == 'png' { C.STBI_rgb_alpha } else { 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)
|
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) {
|
if isnil(res.data) {
|
||||||
return error('stbi image failed to load from "$path"')
|
return error('stbi image failed to load from "$path"')
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue