Erich Hoover : user32: Add FIXMEs for unsupported animated cursor data.
Alexandre Julliard
julliard at winehq.org
Thu Mar 10 11:30:26 CST 2011
Module: wine
Branch: master
Commit: 389ffed29324e57f98e470f7d573293aae2864e6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=389ffed29324e57f98e470f7d573293aae2864e6
Author: Erich Hoover <ehoover at mines.edu>
Date: Wed Mar 9 22:56:34 2011 -0700
user32: Add FIXMEs for unsupported animated cursor data.
---
dlls/user32/cursoricon.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index 141bec8..0d73ecb 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -891,6 +891,7 @@ static HICON CURSORICON_CreateIconFromBMI( BITMAPINFO *bmi, HMODULE module, LPCW
#define ANI_anih_ID RIFF_FOURCC('a', 'n', 'i', 'h')
#define ANI_seq__ID RIFF_FOURCC('s', 'e', 'q', ' ')
#define ANI_fram_ID RIFF_FOURCC('f', 'r', 'a', 'm')
+#define ANI_rate_ID RIFF_FOURCC('r', 'a', 't', 'e')
#define ANI_FLAG_ICON 0x1
#define ANI_FLAG_SEQUENCE 0x2
@@ -996,6 +997,7 @@ static HCURSOR CURSORICON_CreateIconFromANI( const LPBYTE bits, DWORD bits_size,
riff_chunk_t ACON_chunk = {0};
riff_chunk_t anih_chunk = {0};
riff_chunk_t fram_chunk = {0};
+ riff_chunk_t rate_chunk = {0};
const unsigned char *icon_chunk;
const unsigned char *icon_data;
@@ -1017,6 +1019,19 @@ static HCURSOR CURSORICON_CreateIconFromANI( const LPBYTE bits, DWORD bits_size,
memcpy( &header, anih_chunk.data, sizeof(header) );
dump_ani_header( &header );
+ if (!(header.flags & ANI_FLAG_ICON))
+ {
+ FIXME("Raw animated icon/cursor data is not currently supported.\n");
+ return 0;
+ }
+
+ if (header.flags & ANI_FLAG_SEQUENCE)
+ FIXME("Animated icon/cursor sequence data is not currently supported, frames may appear out of sequence.\n");
+
+ riff_find_chunk( ANI_rate_ID, 0, &ACON_chunk, &rate_chunk );
+ if (rate_chunk.data)
+ FIXME("Animated icon/cursor multiple frame-frate data not currently supported.\n");
+
riff_find_chunk( ANI_fram_ID, ANI_LIST_ID, &ACON_chunk, &fram_chunk );
if (!fram_chunk.data)
{
More information about the wine-cvs
mailing list