Mercurial > sdl-ios-xcode
annotate src/main/macos/exports/SDL.x @ 1192:54aa9aa32327
To: sdl@libsdl.org
From: Christian Walther <cwalther@gmx.ch>
Date: Fri, 18 Nov 2005 23:39:02 +0100
Subject: [SDL] Mouse position bugs on Mac OS X
The attached patch fixes a few bugs in SDL related to the mouse position
in windowed mode on Mac OS X, reproduced using the attached minimal test
program - at least here on 10.3.9, with SDL CVS from today. Could anyone
test whether the bugs exist and are fixed by the patch on 10.2 and 10.4?
1. When using OpenGL, the vertical mouse positions obtained through
events or SDL_GetMouseState() are off by one.
2. When using OpenGL, SDL_WarpMouse() inverts the y coordinate.
3. Clicks on the topmost pixel row of the window are not recognized.
1 and 2 do not occur in non-OpenGL mode, while 3 does. All three only
occur in windowed mode, not in fullscreen.
The cause for 1 and 3 is that in Cocoa, "the location of the mouse"
seems to be defined as "the location of the top left corner of the mouse
pointer's hot pixel" (this is not documented, it's just what I found out
here), which together with the fact that Cocoa's usual y coordinates
start at the bottom and increase upwards means that the y coordinate of
the mouse runs from 1 to h, not from 0 to h-1, in a window of height h.
If it does work on 10.2 and 10.4 (I'll try to test it as soon as I can,
but at the moment all I have at hand is 10.3.9), can this be applied to
the CVS?
-Christian
To: sdl@libsdl.org
From: Christian Walther <cwalther@gmx.ch>
Date: Mon, 28 Nov 2005 10:41:51 +0100
Subject: [SDL] Re: Mouse position bugs on Mac OS X
I wrote:
> I'll try to test it as soon as I can, but at the moment all I have at hand is 10.3.9
So, here are the results of my tests (with patched and unpatched
frameworks compiled with Xcode 1.5 (gcc 3.3) on 10.3.9):
On 10.1.5, my test program doesn't run because of "Undefined symbols:
SDL undefined reference to _CGMainDisplayID expected to be defined in
Carbon". I guess not supporting 10.1 was a deliberate decision then and
that's OK with me.
On 10.2.8, 10.3.9, and 10.4.0, the bugs exist as described in my
original post and are fixed by my patch. That is, there is no difference
between pre/post 10.3 and the patched version works correctly in all
combinations of GL/non-GL and windowed/fullscreen.
I therefore recommend the patch for inclusion.
-Christian
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Mon, 28 Nov 2005 13:58:26 +0000 |
parents | eb78bb0b715b |
children | 7a610f25c12f |
rev | line source |
---|---|
0 | 1 SDL_Init |
2 SDL_InitSubSystem | |
3 SDL_QuitSubSystem | |
4 SDL_WasInit | |
5 SDL_Quit | |
6 SDL_GetAppState | |
7 SDL_AudioInit | |
8 SDL_AudioQuit | |
9 SDL_AudioDriverName | |
10 SDL_OpenAudio | |
11 SDL_GetAudioStatus | |
12 SDL_PauseAudio | |
13 SDL_LoadWAV_RW | |
14 SDL_FreeWAV | |
15 SDL_BuildAudioCVT | |
16 SDL_ConvertAudio | |
17 SDL_MixAudio | |
18 SDL_LockAudio | |
19 SDL_UnlockAudio | |
20 SDL_CloseAudio | |
21 SDL_CDNumDrives | |
22 SDL_CDName | |
23 SDL_CDOpen | |
24 SDL_CDStatus | |
25 SDL_CDPlayTracks | |
26 SDL_CDPlay | |
27 SDL_CDPause | |
28 SDL_CDResume | |
29 SDL_CDStop | |
30 SDL_CDEject | |
31 SDL_CDClose | |
763 | 32 SDL_HasRDTSC |
33 SDL_HasMMX | |
791
ab0d977f91f8
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
764
diff
changeset
|
34 SDL_HasMMXExt |
763 | 35 SDL_Has3DNow |
791
ab0d977f91f8
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
764
diff
changeset
|
36 SDL_Has3DNowExt |
763 | 37 SDL_HasSSE |
791
ab0d977f91f8
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
764
diff
changeset
|
38 SDL_HasSSE2 |
ab0d977f91f8
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
764
diff
changeset
|
39 SDL_HasAltiVec |
0 | 40 SDL_ReadLE16 |
41 SDL_ReadBE16 | |
42 SDL_ReadLE32 | |
43 SDL_ReadBE32 | |
44 SDL_ReadLE64 | |
45 SDL_ReadBE64 | |
46 SDL_WriteLE16 | |
47 SDL_WriteBE16 | |
48 SDL_WriteLE32 | |
49 SDL_WriteBE32 | |
50 SDL_WriteLE64 | |
51 SDL_WriteBE64 | |
52 SDL_SetError | |
53 SDL_GetError | |
54 SDL_ClearError | |
976
eb78bb0b715b
Updated for Visual C++ 6 build
Sam Lantinga <slouken@libsdl.org>
parents:
791
diff
changeset
|
55 SDL_Error |
0 | 56 SDL_PumpEvents |
57 SDL_PeepEvents | |
58 SDL_PollEvent | |
59 SDL_WaitEvent | |
60 SDL_PushEvent | |
61 SDL_SetEventFilter | |
62 SDL_GetEventFilter | |
63 SDL_EventState | |
64 SDL_putenv | |
65 SDL_getenv | |
66 SDL_NumJoysticks | |
67 SDL_JoystickName | |
68 SDL_JoystickOpen | |
69 SDL_JoystickOpened | |
70 SDL_JoystickIndex | |
71 SDL_JoystickNumAxes | |
72 SDL_JoystickNumBalls | |
73 SDL_JoystickNumHats | |
74 SDL_JoystickNumButtons | |
75 SDL_JoystickUpdate | |
76 SDL_JoystickEventState | |
77 SDL_JoystickGetAxis | |
78 SDL_JoystickGetHat | |
79 SDL_JoystickGetBall | |
80 SDL_JoystickGetButton | |
81 SDL_JoystickClose | |
82 SDL_EnableUNICODE | |
83 SDL_EnableKeyRepeat | |
84 SDL_GetKeyState | |
85 SDL_GetModState | |
86 SDL_SetModState | |
87 SDL_GetKeyName | |
648
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
296
diff
changeset
|
88 SDL_LoadObject |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
296
diff
changeset
|
89 SDL_LoadFunction |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
296
diff
changeset
|
90 SDL_UnloadObject |
0 | 91 SDL_GetMouseState |
92 SDL_GetRelativeMouseState | |
93 SDL_WarpMouse | |
94 SDL_CreateCursor | |
95 SDL_SetCursor | |
96 SDL_GetCursor | |
97 SDL_FreeCursor | |
98 SDL_ShowCursor | |
99 SDL_CreateMutex | |
100 SDL_mutexP | |
101 SDL_mutexV | |
102 SDL_DestroyMutex | |
103 SDL_CreateSemaphore | |
104 SDL_DestroySemaphore | |
105 SDL_SemWait | |
106 SDL_SemTryWait | |
107 SDL_SemWaitTimeout | |
108 SDL_SemPost | |
109 SDL_SemValue | |
110 SDL_CreateCond | |
111 SDL_DestroyCond | |
112 SDL_CondSignal | |
113 SDL_CondBroadcast | |
114 SDL_CondWait | |
115 SDL_CondWaitTimeout | |
116 SDL_RWFromFile | |
117 SDL_RWFromFP | |
118 SDL_RWFromMem | |
764
974c0fb74bf8
Added function to create RWops from const memory: SDL_RWFromConstMem()
Sam Lantinga <slouken@libsdl.org>
parents:
763
diff
changeset
|
119 SDL_RWFromConstMem |
0 | 120 SDL_AllocRW |
121 SDL_FreeRW | |
122 SDL_GetWMInfo | |
123 SDL_CreateThread | |
124 SDL_ThreadID | |
125 SDL_GetThreadID | |
126 SDL_WaitThread | |
127 SDL_KillThread | |
128 SDL_GetTicks | |
129 SDL_Delay | |
130 SDL_SetTimer | |
131 SDL_AddTimer | |
132 SDL_RemoveTimer | |
133 SDL_Linked_Version | |
134 SDL_VideoInit | |
135 SDL_VideoQuit | |
136 SDL_VideoDriverName | |
137 SDL_GetVideoSurface | |
138 SDL_GetVideoInfo | |
139 SDL_VideoModeOK | |
140 SDL_ListModes | |
141 SDL_SetVideoMode | |
142 SDL_UpdateRects | |
143 SDL_UpdateRect | |
144 SDL_Flip | |
145 SDL_SetGamma | |
146 SDL_SetGammaRamp | |
147 SDL_GetGammaRamp | |
148 SDL_SetColors | |
149 SDL_SetPalette | |
150 SDL_MapRGB | |
151 SDL_MapRGBA | |
152 SDL_GetRGB | |
153 SDL_GetRGBA | |
154 SDL_CreateRGBSurface | |
155 SDL_CreateRGBSurfaceFrom | |
156 SDL_FreeSurface | |
157 SDL_LockSurface | |
158 SDL_UnlockSurface | |
159 SDL_LoadBMP_RW | |
160 SDL_SaveBMP_RW | |
161 SDL_SetColorKey | |
162 SDL_SetAlpha | |
163 SDL_SetClipRect | |
164 SDL_GetClipRect | |
165 SDL_ConvertSurface | |
166 SDL_UpperBlit | |
167 SDL_LowerBlit | |
168 SDL_FillRect | |
169 SDL_DisplayFormat | |
170 SDL_DisplayFormatAlpha | |
171 SDL_CreateYUVOverlay | |
172 SDL_LockYUVOverlay | |
173 SDL_UnlockYUVOverlay | |
174 SDL_DisplayYUVOverlay | |
175 SDL_FreeYUVOverlay | |
176 SDL_GL_LoadLibrary | |
177 SDL_GL_GetProcAddress | |
178 SDL_GL_SetAttribute | |
179 SDL_GL_GetAttribute | |
180 SDL_GL_SwapBuffers | |
181 SDL_GL_UpdateRects | |
182 SDL_GL_Lock | |
183 SDL_GL_Unlock | |
184 SDL_WM_SetCaption | |
185 SDL_WM_GetCaption | |
186 SDL_WM_SetIcon | |
187 SDL_WM_IconifyWindow | |
188 SDL_WM_ToggleFullScreen | |
189 SDL_WM_GrabInput | |
292
eadc0746dfaf
Added SDL_LockRect() and SDL_UnlockRect()
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
190 SDL_SoftStretch |
0 | 191 SDL_InitQuickDraw |