Skip to content

Commit

Permalink
Merge pull request #7413 from radarhere/bc5s
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk committed Oct 5, 2023
2 parents 0c55a2d + 352bcaa commit 09605ff
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
Binary file modified Tests/images/bc5s.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 9 additions & 3 deletions src/libImaging/BcnDecode.c
Expand Up @@ -850,10 +850,12 @@ decode_bcn(
DECODE_LOOP(3, 16, rgba);
DECODE_LOOP(4, 8, lum);
case 5:
{
int sign = strcmp(pixel_format, "BC5S") == 0 ? 1 : 0;
while (bytes >= 16) {
rgba col[16];
memset(col, 0, 16 * sizeof(col[0]));
decode_bc5_block(col, ptr, strcmp(pixel_format, "BC5S") == 0 ? 1 : 0);
memset(col, sign ? 128 : 0, 16 * sizeof(col[0]));
decode_bc5_block(col, ptr, sign);
put_block(im, state, (const char *)col, sizeof(col[0]), C);
ptr += 16;
bytes -= 16;
Expand All @@ -862,10 +864,13 @@ decode_bcn(
}
}
break;
}
case 6:
{
int sign = strcmp(pixel_format, "BC6HS") == 0 ? 1 : 0;
while (bytes >= 16) {
rgba col[16];
decode_bc6_block(col, ptr, strcmp(pixel_format, "BC6HS") == 0 ? 1 : 0);
decode_bc6_block(col, ptr, sign);
put_block(im, state, (const char *)col, sizeof(col[0]), C);
ptr += 16;
bytes -= 16;
Expand All @@ -874,6 +879,7 @@ decode_bcn(
}
}
break;
}
DECODE_LOOP(7, 16, rgba);
#undef DECODE_LOOP
}
Expand Down

0 comments on commit 09605ff

Please sign in to comment.