Alexandre Julliard : wrc: Add support for PNG icons.
Alexandre Julliard
julliard at winehq.org
Wed Mar 27 15:40:05 CDT 2013
Module: wine
Branch: master
Commit: c9d806a0d19379ee8f6dd50bb0945e714bfa847d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c9d806a0d19379ee8f6dd50bb0945e714bfa847d
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Mar 27 13:26:22 2013 +0100
wrc: Add support for PNG icons.
---
tools/wrc/newstruc.c | 31 +++++++++++++++++--------------
1 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/tools/wrc/newstruc.c b/tools/wrc/newstruc.c
index 4651617..52bafbd 100644
--- a/tools/wrc/newstruc.c
+++ b/tools/wrc/newstruc.c
@@ -34,6 +34,8 @@
#include "wingdi.h" /* for BITMAPINFOHEADER */
+#define ICO_PNG_MAGIC 0x474e5089
+
#include <pshpack2.h>
typedef struct
{
@@ -397,27 +399,28 @@ static int convert_bitmap(char *data, int size)
}
bmsize = bih->bV5Size;
- if (bmsize >> 16) /* assume swapped */
- {
-#ifndef WORDS_BIGENDIAN
- type |= FL_SIZEBE;
-#endif
- bmsize = BYTESWAP_DWORD( bmsize );
- }
- else
- {
-#ifdef WORDS_BIGENDIAN
- type |= FL_SIZEBE;
-#endif
- }
-
switch (bmsize)
{
case sizeof(BITMAPOS2HEADER):
case sizeof(BITMAPINFOHEADER):
case sizeof(BITMAPV4HEADER):
case sizeof(BITMAPV5HEADER):
+#ifdef WORDS_BIGENDIAN
+ type |= FL_SIZEBE;
+#endif
+ break;
+ case BYTESWAP_DWORD( sizeof(BITMAPOS2HEADER) ):
+ case BYTESWAP_DWORD( sizeof(BITMAPINFOHEADER) ):
+ case BYTESWAP_DWORD( sizeof(BITMAPV4HEADER) ):
+ case BYTESWAP_DWORD( sizeof(BITMAPV5HEADER) ):
+#ifndef WORDS_BIGENDIAN
+ type |= FL_SIZEBE;
+#endif
+ bmsize = BYTESWAP_DWORD( bmsize );
break;
+ case ICO_PNG_MAGIC:
+ case BYTESWAP_DWORD( ICO_PNG_MAGIC ):
+ return 0; /* nothing to convert */
default:
parser_error("Invalid bitmap format, bih->biSize = %d", bih->bV5Size);
}
More information about the wine-cvs
mailing list