Support loading 2bpp .bmp files
parent
1f7a7fd931
commit
8598f05b47
|
@ -328,15 +328,15 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Expand 1 and 4 bit bitmaps to 8 bits per pixel */
|
/* Expand 1, 2 and 4 bit bitmaps to 8 bits per pixel */
|
||||||
switch (biBitCount) {
|
switch (biBitCount) {
|
||||||
case 1:
|
case 1:
|
||||||
|
case 2:
|
||||||
case 4:
|
case 4:
|
||||||
ExpandBMP = biBitCount;
|
ExpandBMP = biBitCount;
|
||||||
biBitCount = 8;
|
biBitCount = 8;
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 2:
|
|
||||||
case 3:
|
case 3:
|
||||||
case 5:
|
case 5:
|
||||||
case 6:
|
case 6:
|
||||||
|
@ -473,6 +473,10 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
|
||||||
bmpPitch = (biWidth + 7) >> 3;
|
bmpPitch = (biWidth + 7) >> 3;
|
||||||
pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0);
|
pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0);
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
bmpPitch = (biWidth + 3) >> 2;
|
||||||
|
pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
bmpPitch = (biWidth + 1) >> 1;
|
bmpPitch = (biWidth + 1) >> 1;
|
||||||
pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0);
|
pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0);
|
||||||
|
@ -489,6 +493,7 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
|
||||||
while (bits >= top && bits < end) {
|
while (bits >= top && bits < end) {
|
||||||
switch (ExpandBMP) {
|
switch (ExpandBMP) {
|
||||||
case 1:
|
case 1:
|
||||||
|
case 2:
|
||||||
case 4:{
|
case 4:{
|
||||||
Uint8 pixel = 0;
|
Uint8 pixel = 0;
|
||||||
int shift = (8 - ExpandBMP);
|
int shift = (8 - ExpandBMP);
|
||||||
|
|
Loading…
Reference in New Issue