]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
MdeModulePkg/HiiDatabase: Update HiiImage to support PNG/JPEG
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / Image.c
index e5eb677dbfe9823f2485e05db8178082ccf89c61..c8e9258ba67c217c39ab3bfee4010810b53620e3 100644 (file)
@@ -127,7 +127,12 @@ GetImageIdOrAddress (
       break;\r
 \r
     case EFI_HII_IIBT_IMAGE_JPEG:\r
-      Length = ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size);\r
+      Length = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size);\r
+      ImageIdCurrent++;\r
+      break;\r
+\r
+    case EFI_HII_IIBT_IMAGE_PNG:\r
+      Length = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size);\r
       ImageIdCurrent++;\r
       break;\r
 \r
@@ -842,8 +847,10 @@ HiiGetImage (
 \r
   switch (CurrentImageBlock->BlockType) {\r
   case EFI_HII_IIBT_IMAGE_JPEG:\r
+  case EFI_HII_IIBT_IMAGE_PNG:\r
     //\r
-    // BUGBUG: need to be supported as soon as image tool is designed.\r
+    // HiiImage protocol doesn't support return JPEG/PNG.\r
+    // Use HiiImageEx instead.\r
     //\r
     return EFI_UNSUPPORTED;\r
 \r
@@ -1005,11 +1012,11 @@ HiiSetImage (
   //\r
   switch (CurrentImageBlock->BlockType) {\r
   case EFI_HII_IIBT_IMAGE_JPEG:\r
-    //\r
-    // BUGBUG: need to be supported as soon as image tool is designed.\r
-    //\r
-    return EFI_UNSUPPORTED;\r
-\r
+    OldBlockSize = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size);\r
+    break;\r
+  case EFI_HII_IIBT_IMAGE_PNG:\r
+    OldBlockSize = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size);\r
+    break;\r
   case EFI_HII_IIBT_IMAGE_1BIT:\r
   case EFI_HII_IIBT_IMAGE_1BIT_TRANS:\r
     OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +\r