Mercurial > sdl-ios-xcode
annotate src/audio/SDL_mixer_MMX.h @ 4168:69bcba65c388 SDL-1.2
Fixed bug #526
Comment #1 From Simon Howard 2009-03-20 16:50:56
Hi,
I'm the author of Chocolate Doom, one of the other source ports that James
mentioned. This is a patch against the current SVN version of SDL 1.2 that
fixes the bug. It has been tested and hopefully should be obviously correct
from examining the changes. I'll give a brief explanation.
When the palette is set with SDL_SetPalette, the IDirectDrawPalette_SetEntries
DirectX function is invoked. However, when this happens, a WM_PALETTECHANGED
message is sent to the window.
A WM_PALETTECHANGED message can also be received if the palette is changed for
some other reason, like if the system palette is changed. Therefore, the
palette change handler (DX5_PaletteChanged) has code to deal with this case.
It distinguishes "expected" palette changes (set with SDL_SetPalette) from
"unexpected" palette changes using the colorchange_expected variable, which is
set before calling IDirectDrawPalette_SetEntries. However, the code to set
this variable is missing in the fullscreen code path. By setting this
variable, the palette change is handled properly and the freezes go away.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 13 Apr 2009 00:53:12 +0000 |
parents | dc6b59e925a2 |
children | 782fd950bd46 c121d94672cb a8e5b518e194 |
rev | line source |
---|---|
1019
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
1 /* |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
2 headers for MMX assembler version of SDL_MixAudio |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
3 Copyright 2002 Stephane Marchesin (stephane.marchesin@wanadoo.fr) |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
4 This code is licensed under the LGPL (see COPYING for details) |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
5 |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
6 Assumes buffer size in bytes is a multiple of 16 |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
7 Assumes SDL_MIX_MAXVOLUME = 128 |
e3b3130f3af8
Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents:
539
diff
changeset
|
8 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1019
diff
changeset
|
9 #include "SDL_config.h" |
539
a9e38f3b8e4d
Added MMX audio mixing code for gcc (thanks Stephane!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 |
1487
dc6b59e925a2
Cleaning up warnings on MacOS X
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
11 #if defined(__GNUC__) && defined(__i386__) && defined(SDL_ASSEMBLY_ROUTINES) |
539
a9e38f3b8e4d
Added MMX audio mixing code for gcc (thanks Stephane!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 void SDL_MixAudio_MMX_S16(char* ,char* ,unsigned int ,int ); |
a9e38f3b8e4d
Added MMX audio mixing code for gcc (thanks Stephane!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 void SDL_MixAudio_MMX_S8(char* ,char* ,unsigned int ,int ); |
a9e38f3b8e4d
Added MMX audio mixing code for gcc (thanks Stephane!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 #endif |
a9e38f3b8e4d
Added MMX audio mixing code for gcc (thanks Stephane!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 |