Mercurial > sdl-ios-xcode
annotate src/video/default_cursor.h @ 1748:5e86e34453d4
------- Comment #1 From Max Horn 2006-04-17 03:08 [reply] -------
Created an attachment (id=106) [edit]
Patch for src/joystick/win32/SDL_mmjoystick.c
I am not even a Windows user, so take the following with a grain of salt:
SDL_mmjoystick.c has a function GetJoystickName which obtains the joystick
name by looking at the registry. The way it does that seems very fishy to me.
Namely, it uses the parameter "index" to construct a registry value name (BTW,
those variables used in the code are really badly named). The value of "index"
in turn equals the current value of "numdevs", as called from
SDL_SYS_JoystickInit.
I read through the MSDN docs at
<http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarinput/html/msdn_extdirect.asp>,
and I believe the simple fix is to replace line 183 of said file
SYS_JoystickName[numdevs] = GetJoystickName(numdevs, joycaps.szRegKey);
by the following:
SYS_JoystickName[numdevs] = GetJoystickName(SYS_JoystickID[i],
joycaps.szRegKey);
However, that is only *hiding* the real issue. Problem is, the list of
joysticks as returned by windows may contains "gaps", and the code deals
incorrectly with that. Namely those gaps occur if joysticks are
removed/(re)added, as the reporter observed.
The attached patch fixes this and another (off-by-one) issue in the code. But
since I have no Windows machine, I can't even test-compile it, so use with
caution.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 29 Apr 2006 20:22:31 +0000 |
parents | c9b51268668f |
children | 782fd950bd46 a1b03ba2fcd0 |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
0 | 4 |
5 This library is free software; you can redistribute it and/or | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
0 | 7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
0 | 9 |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
13 Lesser General Public License for more details. |
0 | 14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 18 |
19 Sam Lantinga | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
21
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | |
24 * Default cursor - it happens to be the Mac cursor, but could be anything */ | |
25 | |
26 #define DEFAULT_CWIDTH 16 | |
27 #define DEFAULT_CHEIGHT 16 | |
28 #define DEFAULT_CHOTX 0 | |
29 #define DEFAULT_CHOTY 0 | |
30 | |
31 /* Added a real MacOS cursor, at the request of Luc-Olivier de Charrière */ | |
32 #define USE_MACOS_CURSOR | |
33 | |
34 #ifdef USE_MACOS_CURSOR | |
35 | |
36 static unsigned char default_cdata[] = | |
37 { | |
38 0x00,0x00, | |
39 0x40,0x00, | |
40 0x60,0x00, | |
41 0x70,0x00, | |
42 0x78,0x00, | |
43 0x7C,0x00, | |
44 0x7E,0x00, | |
45 0x7F,0x00, | |
46 0x7F,0x80, | |
47 0x7C,0x00, | |
48 0x6C,0x00, | |
49 0x46,0x00, | |
50 0x06,0x00, | |
51 0x03,0x00, | |
52 0x03,0x00, | |
53 0x00,0x00 | |
54 }; | |
55 static unsigned char default_cmask[] = | |
56 { | |
57 0xC0,0x00, | |
58 0xE0,0x00, | |
59 0xF0,0x00, | |
60 0xF8,0x00, | |
61 0xFC,0x00, | |
62 0xFE,0x00, | |
63 0xFF,0x00, | |
64 0xFF,0x80, | |
65 0xFF,0xC0, | |
66 0xFF,0xE0, | |
67 0xFE,0x00, | |
68 0xEF,0x00, | |
69 0xCF,0x00, | |
70 0x87,0x80, | |
71 0x07,0x80, | |
72 0x03,0x00 | |
73 }; | |
74 | |
75 #else | |
76 | |
77 static unsigned char default_cdata[] = | |
78 { | |
79 0x00,0x00, | |
80 0x40,0x00, | |
81 0x60,0x00, | |
82 0x70,0x00, | |
83 0x78,0x00, | |
84 0x7C,0x00, | |
85 0x7E,0x00, | |
86 0x7F,0x00, | |
87 0x7F,0x80, | |
88 0x7C,0x00, | |
89 0x6C,0x00, | |
90 0x46,0x00, | |
91 0x06,0x00, | |
92 0x03,0x00, | |
93 0x03,0x00, | |
94 0x00,0x00 | |
95 }; | |
96 static unsigned char default_cmask[] = | |
97 { | |
98 0x40,0x00, | |
99 0xE0,0x00, | |
100 0xF0,0x00, | |
101 0xF8,0x00, | |
102 0xFC,0x00, | |
103 0xFE,0x00, | |
104 0xFF,0x00, | |
105 0xFF,0x80, | |
106 0xFF,0xC0, | |
107 0xFF,0x80, | |
108 0xFE,0x00, | |
109 0xEF,0x00, | |
110 0x4F,0x00, | |
111 0x07,0x80, | |
112 0x07,0x80, | |
113 0x03,0x00 | |
114 }; | |
115 | |
116 #endif /* TRUE_MACINTOSH_CURSOR */ |