On 27/08/07, Trent Waddington trent.waddington@gmail.com wrote:
+ANIHEADER *anih = NULL; +LPBYTE *ani_frames = NULL; +DWORD ani_frame_idx = 0;
I don't think you want to be using global variables for that.
USER_Driver->pSetCursor( (CURSORICONINFO*)GlobalLock16(HCURSOR_16(hCursor)) );
CURSORICONINFO *info = (CURSORICONINFO*)GlobalLock16(HCURSOR_16(hCursor));
if (info->hNext && !animate_timer_started) {
animate_timer_started = TRUE;
SetTimer(NULL, 0, 55, animate_cursor);
}
USER_Driver->pSetCursor( info );
You should use the timing and frame sequence info from the .ani. Also, Xcursor actually supports proper animated cursors, so it would be better to handle the animation in winex11.drv
@@ -156,6 +156,7 @@ typedef struct tagCURSORICONINFO WORD nWidthBytes; BYTE bPlanes; BYTE bBitsPerPixel;
- HICON16 hNext;
} CURSORICONINFO;
As explained in the comment at the top of cursoricon.c, you can't do that, because it will break win16 applications.