X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FHiiDatabaseDxe%2FImage.c;h=c8e9258ba67c217c39ab3bfee4010810b53620e3;hp=e5eb677dbfe9823f2485e05db8178082ccf89c61;hb=c0c7d58d367fb185ce6a2c109fcc965b42ae77d8;hpb=8ba839630e0ea5dceda12572ffc1db1cc4345851 diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c index e5eb677dbf..c8e9258ba6 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c @@ -127,7 +127,12 @@ GetImageIdOrAddress ( break; case EFI_HII_IIBT_IMAGE_JPEG: - Length = ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size); + Length = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size); + ImageIdCurrent++; + break; + + case EFI_HII_IIBT_IMAGE_PNG: + Length = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size); ImageIdCurrent++; break; @@ -842,8 +847,10 @@ HiiGetImage ( switch (CurrentImageBlock->BlockType) { case EFI_HII_IIBT_IMAGE_JPEG: + case EFI_HII_IIBT_IMAGE_PNG: // - // BUGBUG: need to be supported as soon as image tool is designed. + // HiiImage protocol doesn't support return JPEG/PNG. + // Use HiiImageEx instead. // return EFI_UNSUPPORTED; @@ -1005,11 +1012,11 @@ HiiSetImage ( // switch (CurrentImageBlock->BlockType) { case EFI_HII_IIBT_IMAGE_JPEG: - // - // BUGBUG: need to be supported as soon as image tool is designed. - // - return EFI_UNSUPPORTED; - + OldBlockSize = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size); + break; + case EFI_HII_IIBT_IMAGE_PNG: + OldBlockSize = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size); + break; case EFI_HII_IIBT_IMAGE_1BIT: case EFI_HII_IIBT_IMAGE_1BIT_TRANS: OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +