diff --git a/Protocols/AppleImageCodec/AppleImageCodec.c b/Protocols/AppleImageCodec/AppleImageCodec.c index 9eb099d2f..b08f64fb0 100644 --- a/Protocols/AppleImageCodec/AppleImageCodec.c +++ b/Protocols/AppleImageCodec/AppleImageCodec.c @@ -172,7 +172,7 @@ DecodeImageData (//IN APPLE_IMAGE_CODEC_PROTOCOL* This, } DBG("EFI_SUCCESS, RawImageDataSize=%d\n", *RawImageDataSize); - DBG("ImageBuffer=%p, ImageSize=%d\n", ImageBuffer, ImageSize); + DBG("ImageBuffer, ImageSize=%d\n", ImageSize); DBG("Decoded: W=%d, H=%d\n", Image->Width, Image->Height); for (Index=0; Index<10; Index++) { DBG("P%d: r,g,b,a= %x, %x, %x, %x\n", Index, (*RawImageData)[Index].Red, (*RawImageData)[Index].Green, (*RawImageData)[Index].Blue, (*RawImageData)[Index].Reserved); diff --git a/Protocols/AppleImageCodec/load_bmp.c b/Protocols/AppleImageCodec/load_bmp.c index 6d7ad8d03..be1ead74e 100644 --- a/Protocols/AppleImageCodec/load_bmp.c +++ b/Protocols/AppleImageCodec/load_bmp.c @@ -40,6 +40,7 @@ #define DBG(...) + // BMP structures //#pragma pack(1) @@ -81,7 +82,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W EG_IMAGE *NewImage; BMP_IMAGE_HEADER *BmpHeader; BMP_COLOR_MAP *BmpColorMap; - UINT32 RealPixelHeight, RealPixelWidth; + INT32 RealPixelHeight, RealPixelWidth; UINT8 *ImagePtr; UINT8 *ImagePtrBase; UINTN ImageLineOffset; @@ -132,7 +133,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W // convert image BmpColorMap = (BMP_COLOR_MAP *)(FileData + sizeof(BMP_IMAGE_HEADER)); ImagePtrBase = FileData + BmpHeader->ImageOffset; - for (UINT32 y = 0; y < RealPixelHeight; y++) { + for (INT32 y = 0; y < RealPixelHeight; y++) { ImagePtr = ImagePtrBase; ImagePtrBase += ImageLineOffset; // vertically mirror @@ -145,7 +146,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W switch (BmpHeader->BitPerPixel) { case 1: - for (UINT32 x = 0; x < RealPixelWidth; x++) { + for (INT32 x = 0; x < RealPixelWidth; x++) { BitIndex = x & 0x07; if (BitIndex == 0) ImageValue = *ImagePtr++; @@ -161,8 +162,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W case 4: { - UINT32 x; - for (x = 0; x <= RealPixelWidth - 2; x += 2) { + for (INT32 x = 0; x <= RealPixelWidth - 2; x += 2) { ImageValue = *ImagePtr++; Index = ImageValue >> 4; @@ -179,7 +179,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W PixelPtr->Reserved = AlphaValue; PixelPtr++; } - if (x < RealPixelWidth) { + if ((RealPixelWidth & 1) == 1) { ImageValue = *ImagePtr++; Index = ImageValue >> 4; @@ -192,7 +192,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W break; } case 8: - for (UINT32 x = 0; x < RealPixelWidth; x++) { + for (INT32 x = 0; x < RealPixelWidth; x++) { Index = *ImagePtr++; PixelPtr->Blue = BmpColorMap[Index].Blue; PixelPtr->Green = BmpColorMap[Index].Green; @@ -203,7 +203,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W break; case 24: - for (UINT32 x = 0; x < RealPixelWidth; x++) { + for (INT32 x = 0; x < RealPixelWidth; x++) { PixelPtr->Blue = *ImagePtr++; PixelPtr->Green = *ImagePtr++; PixelPtr->Red = *ImagePtr++; @@ -212,13 +212,13 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN BOOLEAN W } break; case 32: - for (UINT32 x = 0; x < RealPixelWidth; x++) { + for (INT32 x = 0; x < RealPixelWidth; x++) { PixelPtr->Blue = *ImagePtr++; PixelPtr->Green = *ImagePtr++; PixelPtr->Red = *ImagePtr++; PixelPtr->Reserved = *ImagePtr++; - if (!WantAlpha) - PixelPtr->Reserved = 255 - PixelPtr->Reserved; + // if (!WantAlpha) + // PixelPtr->Reserved = 255 - PixelPtr->Reserved; PixelPtr++; } diff --git a/rEFIt_UEFI/Platform/guid.h b/rEFIt_UEFI/Platform/guid.h index 031c55992..84325a0fa 100644 --- a/rEFIt_UEFI/Platform/guid.h +++ b/rEFIt_UEFI/Platform/guid.h @@ -318,7 +318,7 @@ EFI_PART_TYPE_LEGACY_MBR_GUID {0x024DEE41, 0x33E7, 0x11D3, {0x9D, 0x69, 0x00, 0x // 00 00 08 00 00 00 00 00 | ........ // gAppleFpfConfigurationHobGuid = { 0xE3CC8EC6, 0x81C1, 0x4271, { 0xAC, 0xBC, 0xDB, 0x65, 0x08, 0x6E, 0x8D, 0xC8 }} // 59D76AE4-37E3-55A7-B460-EF13D46E6020 AppleEncryptedPartitionProtocolGuid - +// ->LocateProtocol(3496A19A-2E99-41BA-833E-0FDE2EBF2A55, 0, 0/0) = Not Found /* #define APPLE_SECURE_BOOT_VARIABLE_GUID \ { 0x94B73556, 0x2197, 0x4702, \ diff --git a/rEFIt_UEFI/libeg/AppleImageCodec.cpp b/rEFIt_UEFI/libeg/AppleImageCodec.cpp index ef1e93cf9..f891482de 100644 --- a/rEFIt_UEFI/libeg/AppleImageCodec.cpp +++ b/rEFIt_UEFI/libeg/AppleImageCodec.cpp @@ -17,11 +17,12 @@ #include #include "XImage.h" +#include "../Platform/Utils.h" //#include "picopng.h" #include "lodepng.h" -//#define DBG(...) AsciiPrint(__VA_ARGS__); +//#define DBG(...) DebugLog(1, __VA_ARGS__) #define DBG(...) struct EFI_RES_ENTRY { @@ -105,7 +106,7 @@ RecognizeImageData (//IN APPLE_IMAGE_CODEC_PROTOCOL* This, } DBG("EFI_SUCCESS\n"); - DBG(" ImageSize=%d\n", ImageSize); + DBG(" ImageSize=%lld\n", ImageSize); // DBG("Decoded: W=%d, H=%d\n", Image.GetWidth(), Image.GetHeight()); return EFI_SUCCESS; } @@ -132,7 +133,7 @@ GetImageDims (//IN APPLE_IMAGE_CODEC_PROTOCOL* This, *ImageHeight = (UINT32)Image.GetHeight(); DBG("EFI_SUCCESS, Width=%d, Height=%d\n", *ImageWidth, *ImageHeight); - DBG("ImageSize=%d\n", ImageSize); + DBG("ImageSize=%lld\n", ImageSize); return EFI_SUCCESS; } @@ -167,11 +168,11 @@ DecodeImageData (//IN APPLE_IMAGE_CODEC_PROTOCOL* This, } DBG("EFI_SUCCESS, RawImageDataSize=%d\n", *RawImageDataSize); -// DBG("ImageBuffer=%p, ImageSize=%d\n", ImageBuffer, ImageSize); -// DBG("Decoded: W=%d, H=%d\n", Image->Width, Image->Height); -// for (int Index=0; Index<10; Index++) { -// DBG("P%d: r,g,b,a= %x, %x, %x, %x\n", Index, (*RawImageData)[Index].Red, (*RawImageData)[Index].Green, (*RawImageData)[Index].Blue, (*RawImageData)[Index].Reserved); -// } + DBG("ImageBuffer=%p, ImageSize=%lld\n", ImageBuffer, ImageSize); + DBG("Decoded: W=%lld, H=%lld\n", Image.GetWidth(), Image.GetHeight()); + for (int Index=0; Index<10; Index++) { + DBG("P%d: r,g,b,a= %x, %x, %x, %x\n", Index, (*RawImageData)[Index].Red, (*RawImageData)[Index].Green, (*RawImageData)[Index].Blue, (*RawImageData)[Index].Reserved); + } // egFreeImage(Image); return EFI_SUCCESS; }