Mercurial > sdl-ios-xcode
annotate docs/html/cdrom.html @ 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 | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >CD-ROM</TITLE | |
5 ><META | |
6 NAME="GENERATOR" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
0 | 8 "><LINK |
9 REL="HOME" | |
10 TITLE="SDL Library Documentation" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="SDL Reference" | |
14 HREF="reference.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="SDL_CloseAudio" | |
17 HREF="sdlcloseaudio.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_CDNumDrives" | |
20 HREF="sdlcdnumdrives.html"><META | |
21 NAME="KEYWORD" | |
22 CONTENT="cdrom"><META | |
23 NAME="KEYWORD" | |
24 CONTENT="function"></HEAD | |
25 ><BODY | |
26 CLASS="CHAPTER" | |
27 BGCOLOR="#FFF8DC" | |
28 TEXT="#000000" | |
29 LINK="#0000ee" | |
30 VLINK="#551a8b" | |
31 ALINK="#ff0000" | |
32 ><DIV | |
33 CLASS="NAVHEADER" | |
34 ><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
35 SUMMARY="Header navigation table" |
0 | 36 WIDTH="100%" |
37 BORDER="0" | |
38 CELLPADDING="0" | |
39 CELLSPACING="0" | |
40 ><TR | |
41 ><TH | |
42 COLSPAN="3" | |
43 ALIGN="center" | |
44 >SDL Library Documentation</TH | |
45 ></TR | |
46 ><TR | |
47 ><TD | |
48 WIDTH="10%" | |
49 ALIGN="left" | |
50 VALIGN="bottom" | |
51 ><A | |
52 HREF="sdlcloseaudio.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
53 ACCESSKEY="P" |
0 | 54 >Prev</A |
55 ></TD | |
56 ><TD | |
57 WIDTH="80%" | |
58 ALIGN="center" | |
59 VALIGN="bottom" | |
60 ></TD | |
61 ><TD | |
62 WIDTH="10%" | |
63 ALIGN="right" | |
64 VALIGN="bottom" | |
65 ><A | |
66 HREF="sdlcdnumdrives.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
67 ACCESSKEY="N" |
0 | 68 >Next</A |
69 ></TD | |
70 ></TR | |
71 ></TABLE | |
72 ><HR | |
73 ALIGN="LEFT" | |
74 WIDTH="100%"></DIV | |
75 ><DIV | |
76 CLASS="CHAPTER" | |
77 ><H1 | |
78 ><A | |
79 NAME="CDROM" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
80 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
81 >Chapter 11. CD-ROM</H1 |
0 | 82 ><DIV |
83 CLASS="TOC" | |
84 ><DL | |
85 ><DT | |
86 ><B | |
87 >Table of Contents</B | |
88 ></DT | |
89 ><DT | |
90 ><A | |
91 HREF="sdlcdnumdrives.html" | |
92 >SDL_CDNumDrives</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
93 > -- Returns the number of CD-ROM drives on the system.</DT |
0 | 94 ><DT |
95 ><A | |
96 HREF="sdlcdname.html" | |
97 >SDL_CDName</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
98 > -- Returns a human-readable, system-dependent identifier for the CD-ROM.</DT |
0 | 99 ><DT |
100 ><A | |
101 HREF="sdlcdopen.html" | |
102 >SDL_CDOpen</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
103 > -- Opens a CD-ROM drive for access.</DT |
0 | 104 ><DT |
105 ><A | |
106 HREF="sdlcdstatus.html" | |
107 >SDL_CDStatus</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
108 > -- Returns the current status of the given drive.</DT |
0 | 109 ><DT |
110 ><A | |
111 HREF="sdlcdplay.html" | |
112 >SDL_CDPlay</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
113 > -- Play a CD</DT |
0 | 114 ><DT |
115 ><A | |
116 HREF="sdlcdplaytracks.html" | |
117 >SDL_CDPlayTracks</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
118 > -- Play the given CD track(s)</DT |
0 | 119 ><DT |
120 ><A | |
121 HREF="sdlcdpause.html" | |
122 >SDL_CDPause</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
123 > -- Pauses a CDROM</DT |
0 | 124 ><DT |
125 ><A | |
126 HREF="sdlcdresume.html" | |
127 >SDL_CDResume</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
128 > -- Resumes a CDROM</DT |
0 | 129 ><DT |
130 ><A | |
131 HREF="sdlcdstop.html" | |
132 >SDL_CDStop</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
133 > -- Stops a CDROM</DT |
0 | 134 ><DT |
135 ><A | |
136 HREF="sdlcdeject.html" | |
137 >SDL_CDEject</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
138 > -- Ejects a CDROM</DT |
0 | 139 ><DT |
140 ><A | |
141 HREF="sdlcdclose.html" | |
142 >SDL_CDClose</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
143 > -- Closes a SDL_CD handle</DT |
0 | 144 ><DT |
145 ><A | |
146 HREF="sdlcd.html" | |
147 >SDL_CD</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
148 > -- CDROM Drive Information</DT |
0 | 149 ><DT |
150 ><A | |
151 HREF="sdlcdtrack.html" | |
152 >SDL_CDtrack</A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
153 > -- CD Track Information Structure</DT |
0 | 154 ></DL |
155 ></DIV | |
156 ><P | |
157 >SDL supports audio control of up to 32 local CD-ROM drives at once.</P | |
158 ><P | |
159 >You use this API to perform all the basic functions of a CD player, | |
160 including listing the tracks, playing, stopping, and ejecting the CD-ROM. | |
161 (Currently, multi-changer CD drives are not supported.)</P | |
162 ><P | |
163 >Before you call any of the SDL CD-ROM functions, you must first call | |
164 "<TT | |
165 CLASS="FUNCTION" | |
166 >SDL_Init(SDL_INIT_CDROM)</TT | |
167 >", which scans the system for | |
168 CD-ROM drives, and sets the program up for audio control. Check the | |
169 return code, which should be <SPAN | |
170 CLASS="RETURNVALUE" | |
171 >0</SPAN | |
172 >, to see if there | |
173 were any errors in starting up.</P | |
174 ><P | |
175 >After you have initialized the library, you can find out how many drives | |
176 are available using the <TT | |
177 CLASS="FUNCTION" | |
178 >SDL_CDNumDrives()</TT | |
179 > function. | |
180 The first drive listed is the system default CD-ROM drive. After you have | |
181 chosen a drive, and have opened it with <TT | |
182 CLASS="FUNCTION" | |
183 >SDL_CDOpen()</TT | |
184 >, | |
185 you can check the status and start playing if there's a CD in the drive.</P | |
186 ><P | |
187 >A CD-ROM is organized into one or more tracks, each consisting of a certain | |
188 number of "frames". Each frame is ~2K in size, and at normal playing speed, | |
189 a CD plays 75 frames per second. SDL works with the number of frames on a | |
190 CD, but this can easily be converted to the more familiar minutes/seconds | |
191 format by using the <TT | |
192 CLASS="FUNCTION" | |
193 >FRAMES_TO_MSF()</TT | |
194 > macro.</P | |
195 ></DIV | |
196 ><DIV | |
197 CLASS="NAVFOOTER" | |
198 ><HR | |
199 ALIGN="LEFT" | |
200 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
201 SUMMARY="Footer navigation table" |
0 | 202 WIDTH="100%" |
203 BORDER="0" | |
204 CELLPADDING="0" | |
205 CELLSPACING="0" | |
206 ><TR | |
207 ><TD | |
208 WIDTH="33%" | |
209 ALIGN="left" | |
210 VALIGN="top" | |
211 ><A | |
212 HREF="sdlcloseaudio.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
213 ACCESSKEY="P" |
0 | 214 >Prev</A |
215 ></TD | |
216 ><TD | |
217 WIDTH="34%" | |
218 ALIGN="center" | |
219 VALIGN="top" | |
220 ><A | |
221 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
222 ACCESSKEY="H" |
0 | 223 >Home</A |
224 ></TD | |
225 ><TD | |
226 WIDTH="33%" | |
227 ALIGN="right" | |
228 VALIGN="top" | |
229 ><A | |
230 HREF="sdlcdnumdrives.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
231 ACCESSKEY="N" |
0 | 232 >Next</A |
233 ></TD | |
234 ></TR | |
235 ><TR | |
236 ><TD | |
237 WIDTH="33%" | |
238 ALIGN="left" | |
239 VALIGN="top" | |
240 >SDL_CloseAudio</TD | |
241 ><TD | |
242 WIDTH="34%" | |
243 ALIGN="center" | |
244 VALIGN="top" | |
245 ><A | |
246 HREF="reference.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
247 ACCESSKEY="U" |
0 | 248 >Up</A |
249 ></TD | |
250 ><TD | |
251 WIDTH="33%" | |
252 ALIGN="right" | |
253 VALIGN="top" | |
254 >SDL_CDNumDrives</TD | |
255 ></TR | |
256 ></TABLE | |
257 ></DIV | |
258 ></BODY | |
259 ></HTML | |
260 > |