Anonymous avatar Anonymous committed b658346

documentation updated for modules and examples

Comments (0)

Files changed (44)

+This is a list of changes in pygame's history.
 
-This is a list of changes in PyGame's version history.
 
+     Nov 10, 2000
+	Committed to CVS and documentation expanded
 
-0.2:
+0.2: Nov 3, 2000
 	Documentation takes a step forward
 	Sound, mixer and music, now working   (and added to aliens)
 	Addition of get_width, get_height, and get_rect to Surfaces
-0.1:
+
+0.1: Oct 28, 2000
 	PyGame First Release
 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>

docs/Channel.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>Channel</h2>
-Channel objects controls playback of sound.
+Channel objects represent a single channel of sound. Each channel
+can only playback one Sound object at a time. If your application
+only requires simply sound playback, you will usually not need to
+bother with the Channel objects, they exist for finer playback
+control.
+<br>&nbsp;<br>
+Sound objects can be retrieved from the pygame.mixer module with
+functions like pygame.mixer.get_channel() and
+pygame.mixer.find_channel(). Also, each time you call
+Sound.play() a Channel object will be returned, representing the
+channel that sound is playing on.
 
 <hr>
 
 </b></font><br><font size=+1><tt>
 Channel.get_busy() -> bool
 </tt></font><ul>
-Returns true when there is a sound actively
-playing on this channel.
+Returns true when there is a sound actively playing on this
+channel.
 </ul><br>&nbsp;<br>
 
 <a name=get_volume><font size=+2><b>get_volume
 </b></font><br><font size=+1><tt>
 Channel.get_volume() -> val
 </tt></font><ul>
-Returns the current volume for this sound object.
-The value is between 0.0 and 1.0.
+Returns the current volume for this sound object. The value is
+between 0.0 and 1.0.
 </ul><br>&nbsp;<br>
 
 <a name=pause><font size=+2><b>pause
 </b></font><br><font size=+1><tt>
 Channel.play(Sound, [loops, [maxtime]]) -> None
 </tt></font><ul>
-Starts playing a given sound on this channel. If
-the channels is currently playing a different
-sound, it will be replaced/restarted with the
-given sound. Loops controls how many extra times
-the sound will play, a negative loop will play
-indefinitely, it defaults to 0. Maxtime is the
-number of totalmilliseconds that the sound will
-play. It defaults to forever (-1).
+Starts playing a given sound on this channel. If the channels is
+currently playing a different sound, it will be
+replaced/restarted with the given sound. Loops controls how many
+extra times the sound will play, a negative loop will play
+indefinitely, it defaults to 0. Maxtime is the number of
+totalmilliseconds that the sound will play. It defaults to
+forever (-1).
 </ul><br>&nbsp;<br>
 
 <a name=set_volume><font size=+2><b>set_volume
 </b></font><br><font size=+1><tt>
 Channel.set_volume(val) -> None
 </tt></font><ul>
-Sets the volume for the channel. The channel's
-volume level is mixed with the volume for the
-active sound object. The value is between 0.0 and
-1.0.
+Sets the volume for the channel. The channel's volume level is
+mixed with the volume for the active sound object. The value is
+between 0.0 and 1.0.
 </ul><br>&nbsp;<br>
 
 <a name=stop><font size=+2><b>stop
 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>Font</h2>
-Font objects can control and render text.
+The font object is created only from pygame.font.font(). Once a
+font is created it's size and TTF file cannot be changed. The
+Font objects are mainly used to render() text into a new Surface.
+The Font objects also have a few states that can be set with
+set_underline(bool), set_bold(bool), set_italic(bool). Each of
+these functions contains an equivalent get_XXX() routine to find
+the current state. There are also many routines to query the
+dimensions of the text. The rendering functions work with both
+normal python strings, as well as with unicode strings.
 
 <hr>
 
 </b></font><br><font size=+1><tt>
 Font.get_ascent() -> int
 </tt></font><ul>
-Returns the ascent for the font. The ascent is the
-number of pixels from the font baseline to the top
-of the font.
+Returns the ascent for the font. The ascent is the number of
+pixels from the font baseline to the top of the font.
 </ul><br>&nbsp;<br>
 
 <a name=get_bold><font size=+2><b>get_bold
 </b></font><br><font size=+1><tt>
 Font.get_bold() -> bool
 </tt></font><ul>
-Get the current status of the font's bold
-attribute
+Get the current status of the font's bold attribute
 </ul><br>&nbsp;<br>
 
 <a name=get_bold><font size=+2><b>get_bold
 </b></font><br><font size=+1><tt>
 Font.get_bold() -> bool
 </tt></font><ul>
-Get the current status of the font's italic
-attribute
+Get the current status of the font's italic attribute
 </ul><br>&nbsp;<br>
 
 <a name=get_descent><font size=+2><b>get_descent
 </b></font><br><font size=+1><tt>
 Font.get_descent() -> int
 </tt></font><ul>
-Returns the descent for the font. The descent is
-the number of pixels from the font baseline to the
-bottom of the font.
+Returns the descent for the font. The descent is the number of
+pixels from the font baseline to the bottom of the font.
 </ul><br>&nbsp;<br>
 
 <a name=get_height><font size=+2><b>get_height
 </b></font><br><font size=+1><tt>
 Font.get_height() -> int
 </tt></font><ul>
-Returns the average size of each glyph in the
-font.
+Returns the average size of each glyph in the font.
 </ul><br>&nbsp;<br>
 
 <a name=get_linesize><font size=+2><b>get_linesize
 </b></font><br><font size=+1><tt>
 Font.get_linesize() -> int
 </tt></font><ul>
-Returns the linesize for the font. Each font comes
-with it's own recommendation for the spacing
-number of pixels between each line of the font.
+Returns the linesize for the font. Each font comes with it's own
+recommendation for the spacing number of pixels between each line
+of the font.
 </ul><br>&nbsp;<br>
 
 <a name=get_underline><font size=+2><b>get_underline
 </b></font><br><font size=+1><tt>
 Font.get_underline() -> bool
 </tt></font><ul>
-Get the current status of the font's underline
-attribute
+Get the current status of the font's underline attribute
 </ul><br>&nbsp;<br>
 
 <a name=render><font size=+2><b>render
 </b></font><br><font size=+1><tt>
 Font.render(text, antialias, fgcolor, [bgcolor]) -> Surface
 </tt></font><ul>
-Render the given text onto a new image surface.
-The given text can be standard python text or
-unicode. Antialiasing will smooth the edges of the
-font for a much cleaner look. The foreground color
-is a 3-number-sequence containing the desired RGB
-components for the text. The background color is
-also a 3-number-sequence of RGB. This sets the
-background color for the text. If the background
-color is omitted, the text will have a transparent
-background.
+Render the given text onto a new image surface. The given text
+can be standard python text or unicode. Antialiasing will smooth
+the edges of the font for a much cleaner look. The foreground
+color is a 3-number-sequence containing the desired RGB
+components for the text. The background color is also a
+3-number-sequence of RGB. This sets the background color for the
+text. If the background color is omitted, the text will have a
+transparent background.
 </ul><br>&nbsp;<br>
 
 <a name=set_bold><font size=+2><b>set_bold
 </b></font><br><font size=+1><tt>
 Font.set_bold(bool) -> None
 </tt></font><ul>
-Enables or disables the bold attribute for the
-font. Making the font bold does not work as well
-as you expect.
+Enables or disables the bold attribute for the font. Making the
+font bold does not work as well as you expect.
 </ul><br>&nbsp;<br>
 
 <a name=set_italic><font size=+2><b>set_italic
 </b></font><br><font size=+1><tt>
 Font.set_italic(bool) -> None
 </tt></font><ul>
-Enables or disables the italic attribute for the
-font.
+Enables or disables the italic attribute for the font.
 </ul><br>&nbsp;<br>
 
 <a name=set_underline><font size=+2><b>set_underline
 </b></font><br><font size=+1><tt>
 Font.set_underline(bool) -> None
 </tt></font><ul>
-Enables or disables the underline attribute for
-the font.
+Enables or disables the underline attribute for the font.
 </ul><br>&nbsp;<br>
 
 <a name=size><font size=+2><b>size
 </b></font><br><font size=+1><tt>
 Font.size(text) -> width, height
 </tt></font><ul>
-Computes the rendered size of the given text. The
-text can be standard python text or unicode. Know
-that changing the bold and italic attributes will
-change the size of the rendered text.
+Computes the rendered size of the given text. The text can be
+standard python text or unicode. Changing the bold and italic
+attributes can change the size of the rendered text.
 </ul><br>&nbsp;<br>
 
 

docs/Joystick.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 assignment. (except when changing the size, width,
 or height member, which will resize the rectangle
 around the center).
-
+<br>&nbsp;<br>
 The rectstyle arguments used frequently with the
 Rect object (and elsewhere in PyGame) is one of
 the following things. First, an actual Rect
 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>Sound</h2>
-Sound object represents actual sound data.
+Sound objects represent actual sound data. Sound objects are
+created from the function pygame.mixer.load(). Sound objects can
+be playing on multiple channels simultaneously. Calling functions
+like Sound.stop() from the sound objects will effect all channels
+playing that Sound object.
+<br>&nbsp;<br>
+All sound objects have the same frequency and format as the
+pygame.mixer module's initialization.
 
 <hr>
 
 </b></font><br><font size=+1><tt>
 Sound.fadeout(millisec) -> None
 </tt></font><ul>
-Fade out all the playing channels playing this
-sound over the. All channels playing this sound
-will be stopped after the given milliseconds.
+Fade out all the playing channels playing this sound over the.
+All channels playing this sound will be stopped after the given
+milliseconds.
 </ul><br>&nbsp;<br>
 
 <a name=get_num_channels><font size=+2><b>get_num_channels
 </b></font><br><font size=+1><tt>
 Sound.get_num_channels() -> int
 </tt></font><ul>
-Returns the number of channels that have been
-using this sound. The channels may have already
-finished, but have not started playing any other
-sounds.
+Returns the number of channels that have been using this sound.
+The channels may have already finished, but have not started
+playing any other sounds.
 </ul><br>&nbsp;<br>
 
 <a name=get_volume><font size=+2><b>get_volume
 </b></font><br><font size=+1><tt>
 Sound.get_volume() -> val
 </tt></font><ul>
-Returns the current volume for this sound object.
-The value is 0.0 to 1.0.
+Returns the current volume for this sound object. The value is
+0.0 to 1.0.
 </ul><br>&nbsp;<br>
 
 <a name=play><font size=+2><b>play
 </b></font><br><font size=+1><tt>
 Sound.play([loops, [maxtime]]) -> Channel
 </tt></font><ul>
-Starts playing a song on an available channel. If
-no channels are available, it will not play and
-return None. Loops controls how many extra times
-the sound will play, a negative loop will play
-indefinitely, it defaults to 0.  Maxtime is the
-number of total milliseconds that the sound will
-play. It defaults to forever (-1).
-
-Returns a channel object for the channel that is
-selected to play the sound.
+Starts playing a song on an available channel. If no channels are
+available, it will not play and return None. Loops controls how
+many extra times the sound will play, a negative loop will play
+indefinitely, it defaults to 0. Maxtime is the number of total
+milliseconds that the sound will play. It defaults to forever
+(-1).
+<br>&nbsp;<br>
+Returns a channel object for the channel that is selected to play
+the sound.
 </ul><br>&nbsp;<br>
 
 <a name=set_volume><font size=+2><b>set_volume
 </b></font><br><font size=+1><tt>
 Sound.set_volume(val) -> None
 </tt></font><ul>
-Set the play volume for this sound. This will
-effect any channels currently playing this sound,
-along with all subsequent calls to play. The value
-is 0.0 to 1.0.
+Set the play volume for this sound. This will effect any channels
+currently playing this sound, along with all subsequent calls to
+play. The value is 0.0 to 1.0.
 </ul><br>&nbsp;<br>
 
 <a name=stop><font size=+2><b>stop
 </b></font><br><font size=+1><tt>
 Sound.stop() -> None
 </tt></font><ul>
-This will instantly stop all channels playing this
-sound.
+This will instantly stop all channels playing this sound.
 </ul><br>&nbsp;<br>
 
 

docs/Surface.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>Surface</h2>
-Contains the Surface object.
+Surface objects represent a simple memory buffer of pixels.
+Surface objects can reside in system memory, or in special
+hardware memory, which can be hardware accelerated. Surfaces that
+are 8 bits per pixel use a colormap to represent their color
+values. All Surfaces with higher bits per pixel use a packed
+pixels to store their color values.
+<br>&nbsp;<br>
+Surfaces can have many extra attributes like alpha planes,
+colorkeys, source rectangle clipping. These functions mainly
+effect how the Surface is blitted to other Surfaces. The blit
+routines will attempt to use hardware acceleration when possible,
+otherwise will use highly optimized software blitting methods.
+<br>&nbsp;<br>
+There is support for pixel access for the Surfaces. Pixel access
+on hardware surfaces is slow and not recommended. Pixels can be
+accessed using the get_at() and set_at() functions. These methods
+are fine for simple access, but will be considerably slow when
+doing of pixel work with them. If you plan on doing a lot of
+pixel level work, it is recommended to use the pygame.surfarray
+module, which can treat the surfaces like large multidimensional
+arrays (and it's quite quick). Some surfaces need to be locked
+before they can be used. Surfaces with flags like HWSURFACE and
+RLEACCEL generally require calls to lock() and unlock()
+surrounding pixel access. It is safe to lock() and unlock()
+surfaces that do not require locking. Nonetheless, you can check
+to see if a Surface really needs to be locked with the mustlock()
+function.
+<br>&nbsp;<br>
+The packed pixel values are a single interger with the red,
+green, and blue components packed in to match the current
+bitdepth for the Surface. You generally don't need to care how
+this is done, the map_rgb() and unmap_rgb() will convert back and
+forth between the packed pixel values for you. Information on how
+the pixels are packed can be retreived from the get_masks(),
+get_losses() and get_shifts() routines.
+<br>&nbsp;<br>
+Here is the quick breakdown of how these work (don't worry if you
+don't quite understand this, it is only here for informational
+purposes, it is not needed). Each colorplane mask can be used to
+isolate the values for a colorplane from the packed pixel color.
+Therefore PACKED_COLOR & RED_MASK == REDPLANE. Note that the
+REDPLANE is not exactly the red color value, but it is the red
+color value bitwise left shifted a certain amount. The losses and
+masks can be used to convert back and forth between each
+colorplane and the actual color for that plane. Here are the
+final formulas used be map and unmap (not exactly, heh).
+PACKED_COLOR = RED>>losses[0]<<shifts[0] |
+GREEN>>losses[1]<<shifts[1] | BLUE>>losses[2]<<shifts[2]
+RED = PACKED_COLOR & masks[0] >> shifts[0] << losses[0]
+GREEN = PACKED_COLOR & masks[1] >> shifts[1] << losses[1]
+BLUE = PACKED_COLOR & masks[2] >> shifts[2] << losses[2]
+There is also an alpha channel for some Surfaces. The alpha
+channel works this same exact way, and the map_rgba() and
+unmap_rgba() functions can be used to do the conversion for you.
 
 <hr>
 
 get a pixel color</td></tr>
 
 
+<tr><td><a href=#get_at>get_at</a></td><td> -
+get a pixel color</td></tr>
+
+
 <tr><td><a href=#get_bitsize>get_bitsize</a></td><td> -
 query size of pixel</td></tr>
 
 
 
 <tr><td><a href=#get_shifts>get_shifts</a></td><td> -
-get mapping shifts for each colorplane</td></tr>
+alphashift</td></tr>
 
 
 <tr><td><a href=#get_size>get_size</a></td><td> -
 locks Surface for pixel access</td></tr>
 
 
-<tr><td><a href=#map_rgb>map_rgb</a></td><td> -
-convert RGB into a mapped color</td></tr>
-
-
 <tr><td><a href=#map_rgba>map_rgba</a></td><td> -
 convert RGBA into a mapped color</td></tr>
 
 </b></font><br><font size=+1><tt>
 Surface.blit(source, destoffset, [srcoffset, [size]]) -> Rect
 </tt></font><ul>
-The blitting will transfer one surface to another.
-It will respect any special modes like colorkeying
-and alpha. If hardware support is available, it
-will be used. The given source is the Surface to
-copy from. The destoffset is a 2-number-sequence
-that specifies where on the destination Surface
-the blit happens. Without srcoffset and size
-supplied, the blit will copy the entire source
-surface. If you would like to copy only a portion
-of the source, use the srcoffset and size
-arguements to control what area is copied.
-
-The blit is subject to be clipped by the active
-clipping rectangle. The return value contains the
-actual area blitted.
+The blitting will transfer one surface to another. It will
+respect any special modes like colorkeying and alpha. If hardware
+support is available, it will be used. The given source is the
+Surface to copy from. The destoffset is a 2-number-sequence that
+specifies where on the destination Surface the blit happens.
+Without srcoffset and size supplied, the blit will copy the
+entire source surface. If you would like to copy only a portion
+of the source, use the srcoffset and size arguements to control
+what area is copied.
+<br>&nbsp;<br>
+The blit is subject to be clipped by the active clipping
+rectangle. The return value contains the actual area blitted.
 </ul><br>&nbsp;<br>
 
 <a name=convert><font size=+2><b>convert
 </b></font><br><font size=+1><tt>
 Surface.convert([src_surface]) -> Surface
 </tt></font><ul>
-Creates a new copy of the surface with the desired
-pixel format. Surfaces with the same pixel format
-will blit much faster than those with mixed
-formats. The pixel format of the new surface will
-match the format given as the argument. If no
-surface is given, the new surface will have the
-same pixel format as the current display.
+Creates a new copy of the surface with the desired pixel format.
+Surfaces with the same pixel format will blit much faster than
+those with mixed formats. The pixel format of the new surface
+will match the format given as the argument. If no surface is
+given, the new surface will have the same pixel format as the
+current display.
 </ul><br>&nbsp;<br>
 
 <a name=convert_alpha><font size=+2><b>convert_alpha
 </b></font><br><font size=+1><tt>
 Surface.convert_alpha([src_surface]) -> Surface
 </tt></font><ul>
-Creates a new copy of the surface with the desired
-pixel format. The new surface will be in a format
-suited for quick blitting to the given format with
-per pixel alpha. If no surface is given, the new
-surface will be optimized for blittint to the
-current display.
-
-Unlike the <a href=#convert>convert()</a> method, the pixel format for
-the new image will not be exactly the same as the
-requested source, but it will be optimized for
-fast alpha blitting to the destination.
+Creates a new copy of the surface with the desired pixel format.
+The new surface will be in a format suited for quick blitting to
+the given format with per pixel alpha. If no surface is given,
+the new surface will be optimized for blittint to the current
+display.
+<br>&nbsp;<br>
+Unlike the <a href=#convert>convert()</a> method, the pixel format for the new image
+will not be exactly the same as the requested source, but it will
+be optimized for fast alpha blitting to the destination.
 </ul><br>&nbsp;<br>
 
 <a name=fill><font size=+2><b>fill
 </b></font><br><font size=+1><tt>
 Surface.fill(color, [rectstyle])) -> Rect
 </tt></font><ul>
-Fills the specified area of the Surface with the
-mapped color value. If no destination rectangle is
-supplied, it will fill the entire Surface.
-
-The fill is subject to be clipped by the active
-clipping rectangle. The return value contains the
-actual area filled.
+Fills the specified area of the Surface with the mapped color
+value. If no destination rectangle is supplied, it will fill the
+entire Surface.
+<br>&nbsp;<br>
+The fill is subject to be clipped by the active clipping
+rectangle. The return value contains the actual area filled.
 </ul><br>&nbsp;<br>
 
 <a name=get_alpha><font size=+2><b>get_alpha
 </b></font><br><font size=+1><tt>
 Surface.get_alpha() -> alpha
 </tt></font><ul>
-Returns the current alpha value for the Surface.
-If transparency is disabled for the Surface, it
-returns None.
+Returns the current alpha value for the Surface. If transparency
+is disabled for the Surface, it returns None.
 </ul><br>&nbsp;<br>
 
 <a name=get_at><font size=+2><b>get_at
 given point.
 </ul><br>&nbsp;<br>
 
+<a name=get_at><font size=+2><b>get_at
+</b></font><br><font size=+1><tt>
+Surface.get_at([x, y]) -> int
+</tt></font><ul>
+Returns the mapped pixel color at the coordinates given point.
+</ul><br>&nbsp;<br>
+
 <a name=get_bitsize><font size=+2><b>get_bitsize
 </b></font><br><font size=+1><tt>
 Surface.get_bitsize() -> int
 </tt></font><ul>
-Returns the number of bits used to represent each
-pixel. This value may not exactly fill the number
-of bytes used per pixel. For example a 15 bit
-Surface still requires a full 2 bytes.
+Returns the number of bits used to represent each pixel. This
+value may not exactly fill the number of bytes used per pixel.
+For example a 15 bit Surface still requires a full 2 bytes.
 </ul><br>&nbsp;<br>
 
 <a name=get_bytesize><font size=+2><b>get_bytesize
 </b></font><br><font size=+1><tt>
 Surface.get_bytesize() -> int
 </tt></font><ul>
-Returns the number of bytes used to store each
-pixel.
+Returns the number of bytes used to store each pixel.
 </ul><br>&nbsp;<br>
 
 <a name=get_clip><font size=+2><b>get_clip
 </b></font><br><font size=+1><tt>
 Surface.get_clip() -> rect
 </tt></font><ul>
-Returns the current destination clipping area
-being used by the Surface. If the clipping area is
-not set, it will return a rectangle containing the
-full Surface area.
+Returns the current destination clipping area being used by the
+Surface. If the clipping area is not set, it will return a
+rectangle containing the full Surface area.
 </ul><br>&nbsp;<br>
 
 <a name=get_colorkey><font size=+2><b>get_colorkey
 </b></font><br><font size=+1><tt>
 Surface.get_colorkey() -> color
 </tt></font><ul>
-Returns the current mapped color value being used
-for colorkeying. If colorkeying is not enabled for
-this surface, it returns None
+Returns the current mapped color value being used for
+colorkeying. If colorkeying is not enabled for this surface, it
+returns None
 </ul><br>&nbsp;<br>
 
 <a name=get_height><font size=+2><b>get_height
 </b></font><br><font size=+1><tt>
 Surface.get_losses() -> redloss, greenloss, blueloss, alphaloss
 </tt></font><ul>
-Returns the bitloss for each color plane. The loss
-is the number of bits removed for each colorplane
-from a full 8 bits of resolution. A value of 8
-usually indicates that colorplane is not used
-(like the alpha)
+Returns the bitloss for each color plane. The loss is the number
+of bits removed for each colorplane from a full 8 bits of
+resolution. A value of 8 usually indicates that colorplane is not
+used (like the alpha)
 </ul><br>&nbsp;<br>
 
 <a name=get_masks><font size=+2><b>get_masks
 </b></font><br><font size=+1><tt>
 Surface.get_masks() -> redmask, greenmask, bluemask, alphamask
 </tt></font><ul>
-Returns the bitmasks for each color plane. The
-bitmask is used to isolate each colorplane value
-from a mapped color value. A value of zero means
-that colorplane is not used (like alpha)
+Returns the bitmasks for each color plane. The bitmask is used to
+isolate each colorplane value from a mapped color value. A value
+of zero means that colorplane is not used (like alpha)
 </ul><br>&nbsp;<br>
 
 <a name=get_palette><font size=+2><b>get_palette
 </b></font><br><font size=+1><tt>
 Surface.get_palette() -> [[r, g, b], ...]
 </tt></font><ul>
-This will return the an array of all the color
-indexes in the Surface's palette.
+This will return the an array of all the color indexes in the
+Surface's palette.
 </ul><br>&nbsp;<br>
 
 <a name=get_palette_at><font size=+2><b>get_palette_at
 </b></font><br><font size=+1><tt>
 Surface.get_palette_at(index) -> r, g, b
 </tt></font><ul>
-This will retreive an individual color entry from
-the Surface's palette.
+This will retreive an individual color entry from the Surface's
+palette.
 </ul><br>&nbsp;<br>
 
 <a name=get_rect><font size=+2><b>get_rect
 
 <a name=get_shifts><font size=+2><b>get_shifts
 </b></font><br><font size=+1><tt>
-Surface.get_shifts() -> redshift, greenshift, blueshift, alphashift
+Surface.get_shifts() -> redshift, greenshift, blueshift,
 </tt></font><ul>
-Returns the bitshifts used for each color plane.
-The shift is determine how many bits left-shifted
-a colorplane value is in a mapped color value.
+<br>&nbsp;<br>
+Returns the bitshifts used for each color plane. The shift is
+determine how many bits left-shifted a colorplane value is in a
+mapped color value.
 </ul><br>&nbsp;<br>
 
 <a name=get_size><font size=+2><b>get_size
 </b></font><br><font size=+1><tt>
 Surface.lock() -> None
 </tt></font><ul>
-On accelerated surfaces, it is usually required to
-lock the surface before you can access the pixel
-values. To be safe, it is always a good idea to
-lock the surface before entering a block of code
-that changes or accesses the pixel values. The
-surface must not be locked when performing other
-pyGame functions on it like fill and blit.
-
-You can doublecheck to really make sure a lock is
-needed by calling the <a href=#mustlock>mustlock()</a> member. This
-should not be needed, since it is usually
-recommended to lock anyways and work with all
-surface types. If the surface does not need to be
-locked, the operation will return quickly with
-minute overhead.
-
-On some platforms a necessary lock can shut off
-some parts of the system. This is not a problem
-unless you leave surfaces locked for long periouds
-of time. Only keep the surface locked when you
-need the pixel access. At the same time, it is not
-a good too repeatedly lock and unlock the surface
-inside tight loops. It is fine to leave the
-surface locked while needed, just don't be lazy.
-</ul><br>&nbsp;<br>
-
-<a name=map_rgb><font size=+2><b>map_rgb
-</b></font><br><font size=+1><tt>
-Surface.map_rgb([r, g, b]) -> int
-</tt></font><ul>
-Uses the Surface format to convert RGB into a
-mapped color value. Note that this will work if
-the RGB is passed as three arguments instead of a
-sequence.
+On accelerated surfaces, it is usually required to lock the
+surface before you can access the pixel values. To be safe, it is
+always a good idea to lock the surface before entering a block of
+code that changes or accesses the pixel values. The surface must
+not be locked when performing other pyGame functions on it like
+fill and blit.
+<br>&nbsp;<br>
+You can doublecheck to really make sure a lock is needed by
+calling the <a href=#mustlock>mustlock()</a> member. This should not be needed, since
+it is usually recommended to lock anyways and work with all
+surface types. If the surface does not need to be locked, the
+operation will return quickly with minute overhead.
+<br>&nbsp;<br>
+On some platforms a necessary lock can shut off some parts of the
+system. This is not a problem unless you leave surfaces locked
+for long periouds of time. Only keep the surface locked when you
+need the pixel access. At the same time, it is not a good too
+repeatedly lock and unlock the surface inside tight loops. It is
+fine to leave the surface locked while needed, just don't be
+lazy.
 </ul><br>&nbsp;<br>
 
 <a name=map_rgba><font size=+2><b>map_rgba
 </b></font><br><font size=+1><tt>
 Surface.map_rgba([r, g, b, a]) -> int
 </tt></font><ul>
-Uses the Surface format to convert RGBA into a
-mapped color value. It is safe to call this on a
-surface with no pixel alpha. The alpha will simply
-be ignored.
+Uses the Surface format to convert RGBA into a mapped color
+value. It is safe to call this on a surface with no pixel alpha.
+The alpha will simply be ignored.
 </ul><br>&nbsp;<br>
 
 <a name=mustlock><font size=+2><b>mustlock
 </b></font><br><font size=+1><tt>
 Surface.mustlock() -> bool
 </tt></font><ul>
-Returns true if the surface really does need
-locking to gain pixel access. Usually the overhead
-of checking before locking outweight the overhead
-of just locking any surface before access.
+Returns true if the surface really does need locking to gain
+pixel access. Usually the overhead of checking before locking
+outweight the overhead of just locking any surface before access.
 </ul><br>&nbsp;<br>
 
 <a name=set_alpha><font size=+2><b>set_alpha
 </b></font><br><font size=+1><tt>
 Surface.set_alpha([alpha, [flags]]) -> None
 </tt></font><ul>
-Set the overall transparency for the surface. If
-no alpha is passed, alpha blending is disabled for
-the surface. An alpha of 0 is fully transparent,
-an alpha of 255 is fully opaque.
-
-If your surface has a pixel alpha channel, it will
-override the overall surface transparency. You'll
-need to change the actual pixel transparency to
-make changes.
-
-If your image is nonchanging and will be used
-repeatedly, you will probably want to pass the
-RLEACCEL flag to the call. This will take a short
-time to compile your surface, and increase the
+Set the overall transparency for the surface. If no alpha is
+passed, alpha blending is disabled for the surface. An alpha of 0
+is fully transparent, an alpha of 255 is fully opaque.
+<br>&nbsp;<br>
+If your surface has a pixel alpha channel, it will override the
+overall surface transparency. You'll need to change the actual
+pixel transparency to make changes.
+<br>&nbsp;<br>
+If your image is nonchanging and will be used repeatedly, you
+will probably want to pass the RLEACCEL flag to the call. This
+will take a short time to compile your surface, and increase the
 blitting speed.
 </ul><br>&nbsp;<br>
 
 </b></font><br><font size=+1><tt>
 Surface.set_at([x, y], pixel) -> None
 </tt></font><ul>
-Assigns a mapped pixel color to the image at the
-give position.
+Assigns a mapped pixel color to the image at the give position.
 </ul><br>&nbsp;<br>
 
 <a name=set_clip><font size=+2><b>set_clip
 </b></font><br><font size=+1><tt>
 Surface.set_clip([rectstyle])) -> Rect
 </tt></font><ul>
-Assigns the destination clipping rectangle for the
-Surface. When blit or fill operations are
-performed on the Surface, they are restricted to
-the inside of the clipping rectangle. If no
-rectangle is passed, the clipping region is set to
-the entire Surface area.
+Assigns the destination clipping rectangle for the Surface. When
+blit or fill operations are performed on the Surface, they are
+restricted to the inside of the clipping rectangle. If no
+rectangle is passed, the clipping region is set to the entire
+Surface area.
 </ul><br>&nbsp;<br>
 
 <a name=set_colorkey><font size=+2><b>set_colorkey
 </b></font><br><font size=+1><tt>
 Surface.set_colorkey([color, [flags]]) -> None
 </tt></font><ul>
-Set the colorkey for the surface by passing a
-mapped color value as the color argument. If no
-arguments are passed, colorkeying will be disabled
-for this surface.
-
-If your image is nonchanging and will be used
-repeatedly, you will probably want to pass the
-RLEACCEL flag to the call. This will take a short
-time to compile your surface, and increase the
+Set the colorkey for the surface by passing a mapped color value
+as the color argument. If no arguments are passed, colorkeying
+will be disabled for this surface.
+<br>&nbsp;<br>
+If your image is nonchanging and will be used repeatedly, you
+will probably want to pass the RLEACCEL flag to the call. This
+will take a short time to compile your surface, and increase the
 blitting speed.
 </ul><br>&nbsp;<br>
 
 </b></font><br><font size=+1><tt>
 Surface.set_palette_at(index, [r, g, b]) -> None
 </tt></font><ul>
-This function sets the palette color at a specific
-entry.
+This function sets the palette color at a specific entry.
 </ul><br>&nbsp;<br>
 
 <a name=unlock><font size=+2><b>unlock
 </b></font><br><font size=+1><tt>
 Surface.unlock() -> None
 </tt></font><ul>
-After a surface has been locked, you will need to
-unlock it when you are done.
-
-You can doublecheck to really make sure a lock is
-needed by calling the <a href=#mustlock>mustlock()</a> member. This
-should not be needed, since it is usually
-recommended to lock anyways and work with all
-surface types. If the surface does not need to be
-locked, the operation will return quickly with
-minute overhead.
+After a surface has been locked, you will need to unlock it when
+you are done.
+<br>&nbsp;<br>
+You can doublecheck to really make sure a lock is needed by
+calling the <a href=#mustlock>mustlock()</a> member. This should not be needed, since
+it is usually recommended to lock anyways and work with all
+surface types. If the surface does not need to be locked, the
+operation will return quickly with minute overhead.
 </ul><br>&nbsp;<br>
 
 <a name=unmap_rgb><font size=+2><b>unmap_rgb
 </b></font><br><font size=+1><tt>
 Surface.unmap_rgb(color) -> r, g, b
 </tt></font><ul>
-This function returns the RGB components for a
-mapped color value.
+This function returns the RGB components for a mapped color
+value.
 </ul><br>&nbsp;<br>
 
 <a name=unmap_rgba><font size=+2><b>unmap_rgba
 </b></font><br><font size=+1><tt>
 Surface.unmap_rgba(color) -> r, g, b, a
 </tt></font><ul>
-This function returns the RGB components for a
-mapped color value. For surfaces with no alpha,
-the alpha will always be 255.
+This function returns the RGB components for a mapped color
+value. For surfaces with no alpha, the alpha will always be 255.
 </ul><br>&nbsp;<br>
 
 
 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>pygame</h2>
-Contains the core routines that are used by the
-rest of the pyGame modules. It's routines are
-merged directly into the pygame namespace.
+Contains the core routines that are used by the rest of the
+pyGame modules. It's routines are merged directly into the pygame
+namespace. This mainly includes the autoinitialization init() and
+quit() routines.
+<br>&nbsp;<br>
+There is a small module named 'locals' that also gets merged into
+this namespace. This contains all the constants needed by pygame.
+Object constructors also get placed into this namespace, you can
+call functions like rect() and surface() to create objects of
+that type. As a convenience, you can import the members of
+pygame.locals directly into your module's namespace with "from
+pygame.locals import *". Most of the pygame examples do this if
+you'd like to take a look.
 
 <hr>
 
 
 
 <tr><td><a href=#surface>surface</a></td><td> -
-create a new Surface</td></tr>
+Surface</td></tr>
 
 
 </table>
 </b></font><br><font size=+1><tt>
 pygame.font(file, size) -> Font
 </tt></font><ul>
-This will create a new font object. The given file
-must be an existing filename. The font loader does
-not work with python file-like objects. The size
-represents the height of the font in pixels.
+This will create a new font object. The given file must be an
+existing filename. The font loader does not work with python
+file-like objects. The size represents the height of the font in
+pixels.
 </ul><br>&nbsp;<br>
 
 <a name=get_error><font size=+2><b>get_error
 </b></font><br><font size=+1><tt>
 pygame.get_error() -> errorstring
 </tt></font><ul>
-SDL maintains an internal current error message.
-This message is usually given to you when an SDL
-related exception occurs, but sometimes you may
-want to call this directly yourself.
+SDL maintains an internal current error message. This message is
+usually given to you when an SDL related exception occurs, but
+sometimes you may want to call this directly yourself.
 </ul><br>&nbsp;<br>
 
 <a name=get_grab><font size=+2><b>get_grab
 </b></font><br><font size=+1><tt>
 pygame.init() -> passed, failed
 </tt></font><ul>
-Initialize all imported pyGame modules. Including
-pyGame modules that are not part of the base
-modules (like font and image).
-
-It does not raise exceptions, but instead silently
-counts which modules have failed to init. The
-return argument contains a count of the number of
-modules initialized, and the number of modules
+Initialize all imported pygame modules. Including pygame modules
+that are not part of the base modules (like font and image).
+<br>&nbsp;<br>
+It does not raise exceptions, but instead silently counts which
+modules have failed to init. The return argument contains a count
+of the number of modules initialized, and the number of modules
 that failed to initialize.
-
-You can always initialize the modules you want by
-hand. The modules that need it have an <u>init()</u> and
-quit() routine built in, which you can call
-directly. They also have a <a href=pygame_cdrom.html#get_init>get_init()</a> routine
-which you can use to doublecheck the
-initialization. Note that the manual <u>init()</u>
-routines will raise an exception on error. Be
-aware that most platforms require the display
-module to be initialized before others. This
-init() will handle that for you, but if you
-initialize by hand, be aware of this constraint.
-
-As with the manual <u>init()</u> routines. It is safe to
-call this <u>init()</u> as often as you like. If you have
-imported pyGame modules since the.
+<br>&nbsp;<br>
+You can always initialize the modules you want by hand. The
+modules that need it have an <u>init()</u> and <a href=#quit>quit()</a> routine built in,
+which you can call directly. They also have a <a href=pygame_cdrom.html#get_init>get_init()</a> routine
+which you can use to doublecheck the initialization. Note that
+the manual <u>init()</u> routines will raise an exception on error. Be
+aware that most platforms require the display module to be
+initialized before others. This <u>init()</u> will handle that for you,
+but if you initialize by hand, be aware of this constraint.
+<br>&nbsp;<br>
+As with the manual <u>init()</u> routines. It is safe to call this
+init() as often as you like. If you have imported pygame modules
+since the.
 </ul><br>&nbsp;<br>
 
 <a name=quit><font size=+2><b>quit
 </b></font><br><font size=+1><tt>
 pygame.quit() -> none
 </tt></font><ul>
-Uninitialize all pyGame modules that have been
-initialized. Even if you initialized the module by
-hand, this <u>quit()</u> will uninitialize it for you.
-
-All the pyGame modules are uninitialized
-automatically when your program exits, so you will
-usually not need this routine. If you program
-plans to keep running after it is done with
-pyGame, then would be a good time to make this
-call.
+Uninitialize all pygame modules that have been initialized. Even
+if you initialized the module by hand, this <u>quit()</u> will
+uninitialize it for you.
+<br>&nbsp;<br>
+All the pygame modules are uninitialized automatically when your
+program exits, so you will usually not need this routine. If you
+program plans to keep running after it is done with pygame, then
+would be a good time to make this call.
 </ul><br>&nbsp;<br>
 
 <a name=rect><font size=+2><b>rect
 </b></font><br><font size=+1><tt>
 pygame.register_quit(callback) -> None
 </tt></font><ul>
-The given callback routine will be called when.
-pygame is quitting. Quit callbacks are served on
-a 'last in, first out' basis. Also be aware that
-your callback may be called more than once..
+The given callback routine will be called when. pygame is
+quitting. Quit callbacks are served on a 'last in, first out'
+basis. Also be aware that your callback may be called more than
+once.
 </ul><br>&nbsp;<br>
 
 <a name=surface><font size=+2><b>surface
 </b></font><br><font size=+1><tt>
-pygame.surface(size, [flags, [depth|Surface, [masks]]]) -> Surface
+pygame.surface(size, [flags, [depth|Surface, [masks]]]) ->
 </tt></font><ul>
-Creates a new surface object. Size is a
-2-int-sequence containing width and height. Depth
-is the number of bits used per pixel. If omitted,
-depth will use the current
-display depth. Masks is a four item sequence
-containing the bitmask for r,g,b, and a. If
-omitted, masks will default to the usual values
-for the given bitdepth. Flags is a mix of the
-following flags: SWSURFACE, HWSURFACE, ASYNCBLIT,
-SRCCOLORKEY, or SRCALPHA. (flags = 0 is the same
-as SWSURFACE). depth and masks can be substituted
-for another surface object which will create the
-new surface with the same format as the given one.
-When using default masks, alpha will always be
-ignored. Note, if you pass SRCOLORKEY and/or
-SRCALPHA, the surface won't immediately have these
-features enabled. SDL will use these flags to help
-optimize the surface for use with the blitters.
-Also, for a plain software surface, 0 can be used
-for the flag. A plain hardware surface can just
-use 1 for the flag.
+<br>&nbsp;<br>
+Creates a new surface object. Size is a 2-int-sequence containing
+width and height. Depth is the number of bits used per pixel. If
+omitted, depth will use the current display depth. Masks is a
+four item sequence containing the bitmask for r,g,b, and a. If
+omitted, masks will default to the usual values for the given
+bitdepth. Flags is a mix of the following flags: SWSURFACE,
+HWSURFACE, ASYNCBLIT, SRCCOLORKEY, or SRCALPHA. (flags = 0 is the
+same as SWSURFACE). depth and masks can be substituted for
+another surface object which will create the new surface with the
+same format as the given one. When using default masks, alpha
+will always be ignored. Note, if you pass SRCOLORKEY and/or
+SRCALPHA, the surface won't immediately have these features
+enabled. SDL will use these flags to help optimize the surface
+for use with the blitters. Also, for a plain software surface, 0
+can be used for the flag. A plain hardware surface can just use 1
+for the flag.
 </ul><br>&nbsp;<br>
 
 

docs/pygame_cdrom.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>

docs/pygame_constants.html

+<html>
+<title>pygame.constants</title>
+<body bgcolor=#dddddd text=#333377 link=#7777bb vlink=#7777bb>
+
+<table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
+<td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
+<td valign=middle><tt><font color=#dddddd><br>
+	PyGame<br>Documentation</font>
+</td></tr></table></td><td width=100% height=100% align=center valign=middle>
+
+	||&nbsp;
+	<a href=../>Home</a> &nbsp;||&nbsp;
+	<a href=index.html>Help Contents</a> &nbsp;||
+	<br>&nbsp;<br>
+
+|| <a href=CD.html>CD</a> || 
+<a href=Channel.html>Channel</a> || 
+<a href=Font.html>Font</a> || 
+<a href=Joystick.html>Joystick</a> || 
+<a href=Rect.html>Rect</a> ||<br>
+|| <a href=Sound.html>Sound</a> || 
+<a href=Surface.html>Surface</a> || 
+<a href=pygame.html>pygame</a> || 
+<a href=pygame_cdrom.html>cdrom</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
+<a href=pygame_font.html>font</a> || 
+<a href=pygame_image.html>image</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_mouse.html>mouse</a> || 
+<a href=pygame_music.html>music</a> || 
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
+
+
+</td></tr></table>
+<br>
+<h2 align=center>pygame.constants</h2>
+These constants are defined by SDL, and needed in pygame. Note
+that many of the flags for SDL are not needed in pygame, and are
+not included here. These constants are generally accessed from
+the pygame.locals module. This module is automatically placed in
+the pygame namespace, but you will usually want to place them
+directly into your module's namespace with the following command,
+'from pygame.locals import *'.
+
+<hr>
+
+<table>
+<tr><td><a href=#display >display </a></td><td> -
+The following constants are used by the display module and Surfaces</td></tr>
+
+
+<tr><td><a href=#events >events </a></td><td> -
+These constants define the various event types</td></tr>
+
+
+<tr><td><a href=#keyboard >keyboard </a></td><td> -
+These constants represent the keys on the keyboard.</td></tr>
+
+
+<tr><td><a href=#modifiers >modifiers </a></td><td> -
+These constants represent the modifier keys on the keyboard.</td></tr>
+
+
+<tr><td><a href=#zdepracated >zdepracated </a></td><td> -
+The following constants are made available, but generally not needed</td></tr>
+
+
+</table>
+
+<hr>
+
+<a name=display ><font size=+2><b>display 
+</b></font><br><font size=+1><tt>
+pygame.constants.display (constants)
+</tt></font><ul>
+HWSURFACE - surface in hardware video memory. (equal to 1)<br>
+RESIZEABLE - display window is resizeable<br>
+ASYNCBLIT - surface blits happen asynchronously (threaded)<br>
+OPENGL - display surface will be controlled by opengl<br>
+OPENGLBLIT - opengl controlled display surface will allow sdl
+blits<br>
+HWPALETTE - display surface has animatable hardware palette
+entries<br>
+DOUBLEBUF - hardware display surface is page flippable<br>
+FULLSCREEN - display surface is fullscreen (nonwindowed)<br>
+RLEACCEL - compile for quick alpha blits, only set in alpha or
+colorkey funcs<br>
+</ul><br>&nbsp;<br>
+
+<a name=events ><font size=+2><b>events 
+</b></font><br><font size=+1><tt>
+pygame.constants.events (constants)
+</tt></font><ul>
+NOEVENT - no event, represents an empty event list, equal to 0<br>
+ACTIVEEVENT - window has gain/lost mouse/keyboard/visiblity focus<br>
+KEYDOWN - keyboard button has been pressed (or down and repeating)<br>
+KEYUP - keyboard button has been released<br>
+MOUSEMOTION - mouse has moved<br>
+MOUSEBUTTONDOWN- mouse button has been pressed<br>
+MOUSEBUTTONUP - mouse button has been released<br>
+JOYAXISMOTION - an opened joystick axis has changed<br>
+JOYBALLMOTION - an opened joystick ball has moved<br>
+JOYHATMOTION - an opened joystick hat has moved<br>
+JOYBUTTONDOWN - an opened joystick button has been pressed<br>
+JOYBUTTONUP - an opened joystick button has been released<br>
+VIDEORESIZE - the display window has been resized by the user<br>
+QUIT - the user has requested the game to quit<br>
+SYSWMEVENT - currently unsupported, system dependant<br>
+USEREVENTS - all user messages are this or higher<br>
+NUMEVENTS - all user messages must be lower than this, equal to 32<br>
+</ul><br>&nbsp;<br>
+
+<a name=keyboard ><font size=+2><b>keyboard 
+</b></font><br><font size=+1><tt>
+pygame.constants.keyboard (constants)
+</tt></font><ul>
+There are many keyboard constants, they are used to represent
+keys on the keyboard. The following is a list of all keyboard
+constants
+<br>&nbsp;<br>
+K_UNKNOWN, K_FIRST, K_BACKSPACE, K_TAB, K_CLEAR, K_RETURN,
+K_PAUSE,<br>
+.... list unfinished, sorry :-P
+</ul><br>&nbsp;<br>
+
+<a name=modifiers ><font size=+2><b>modifiers 
+</b></font><br><font size=+1><tt>
+pygame.constants.modifiers (constants)
+</tt></font><ul>
+Their states are treated slightly differently than normal
+keyboard button states, and you can temporarily set their states.
+<br>&nbsp;<br>
+KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_SHIFT, KMOD_CAPS,<br>
+KMOD_LCTRL, KMOD_RCTRL, KMOD_CTRL, KMOD_LALT, KMOD_RALT,<br>
+KMOD_ALT, KMOD_LMETA, KMOD_RMETA, KMOD_META, KMOD_NUM, kMOD_MODE<br>
+</ul><br>&nbsp;<br>
+
+<a name=zdepracated ><font size=+2><b>zdepracated 
+</b></font><br><font size=+1><tt>
+pygame.constants.zdepracated (constants)
+</tt></font><ul>
+The flags labeled as readonly should never be used,
+except when comparing checking flags against Surface.get_flags().
+<br>&nbsp;<br>
+SWSURFACE - not really usable as a surface flag, equates to 0 and
+is always default<br>
+ANYFORMAT - used to create surfaces, pygame defaults to this flag
+if you don't specifya bit depth<br>
+HWACCEL - surface is hardware accelerated, readonly<br>
+SRCCOLORKEY- surface has a colorkey for blits, readonly<br>
+SRCALPHA - surface has alpha enabled, readonly<br>
+RLEACCELOK - surface is rle accelerated, but hasn't been compiled
+yet, readonly<br>
+PREALLOC - not even sure?<br>
+</ul><br>&nbsp;<br>
+
+
+<hr>
+
+</body></html>

docs/pygame_display.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 <br>
 <h2 align=center>pygame.display</h2>
-Contains routines to work with the display. Mainly
-used for setting the display mode and updating the
-display surface.
+Contains routines to work with the display. Mainly used for
+setting the display mode and updating the display surface.
+<br>&nbsp;<br>
+Pygame offers a fairly simple interface to the display buffer.
+The buffer is represented as an offscreen surface to which you
+can write directly. If you want the screen to show what you have
+written, the pygame.display.update() function will guarantee the
+the desired portion of the screen is updated. You can call
+pygame.display.flip() to update the entire screen, and also flip
+a hardware surface created with DOUBLEBUF.
+<br>&nbsp;<br>
+There are a number of ways to start the video display. The
+easiest way is to pick a common screen resolution and depth and
+just initialize the video, checking for exceptions. You will
+probably get what you want, but pygame may be emulating your
+requested mode and converting the display on update (this is not
+the fastest method). When calling pygame.display.set_mode() with
+the bit depth omitted or set to zero, pygame will determine the
+best video mode available and set to that. You can also query for
+more information on video modes with pygame.display.mode_ok(),
+pygame.display.list_modes(), and
+pygame.display.get_vidinfo().get_info().
+<br>&nbsp;<br>
+When using a display depth other than what you graphic resources
+may be saved at, it is best to call the Surface.convert() routine
+to convert them to the same format as the display, this will
+result in the fastest blitting.
+<br>&nbsp;<br>
+Pygame currently supports any but depth >= 8 bits per pixl. 8bpp
+formats are considered to be 8-bit palettized modes, while 12,
+15, 16, 24, and 32 bits per pixel are considered "packed pixel"
+modes, meaning each pixel contains the RGB color componsents
+packed into the bits of the pixel.
+<br>&nbsp;<br>
+After you have initialized your video mode, you can take the
+surface that was returned and write to it like any other Surface
+object. Be sure to call update() or flip() to keep what is on the
+screen synchronized with what is on the surface.
 
 <hr>
 
 changes the title of the window</td></tr>
 
 
-<tr><td><a href=#set_driver>set_driver</a></td><td> -
-override the default sdl video driver</td></tr>
-
-
 <tr><td><a href=#set_gamma>set_gamma</a></td><td> -
 change the brightness of the display</td></tr>
 
 </b></font><br><font size=+1><tt>
 pygame.display.flip() -> None
 </tt></font><ul>
-This will update the contents of the entire
-display. If your display mode is using the flags
-HWSURFACE and DOUBLEBUF, this will wait for a
-vertical retrace and swap the surfaces. If you are
-using a different type of display mode, it will
-simply update the entire contents of the surface.
+This will update the contents of the entire display. If your
+display mode is using the flags HWSURFACE and DOUBLEBUF, this
+will wait for a vertical retrace and swap the surfaces. If you
+are using a different type of display mode, it will simply update
+the entire contents of the surface.
 </ul><br>&nbsp;<br>
 
 <a name=get_active><font size=+2><b>get_active
 </b></font><br><font size=+1><tt>
 pygame.display.get_active() -> bool
 </tt></font><ul>
-Returns true if the current display is active on
-the screen. This done with the call to
-pygame.display.set_mode(). It is potentially
-subject to the activity of a running window
-manager.
+Returns true if the current display is active on the screen. This
+done with the call to <a href=#set_mode>pygame.display.set_mode()</a>. It is
+potentially subject to the activity of a running window manager.
 </ul><br>&nbsp;<br>
 
 <a name=get_caption><font size=+2><b>get_caption
 </b></font><br><font size=+1><tt>
 pygame.display.get_caption() -> title, icontitle
 </tt></font><ul>
-Returns the current title and icontitle for the
-display window.
+Returns the current title and icontitle for the display window.
 </ul><br>&nbsp;<br>
 
 <a name=get_driver><font size=+2><b>get_driver
 </b></font><br><font size=+1><tt>
 pygame.display.get_driver() -> name
 </tt></font><ul>
-Once the display is initialized, this will return
-the name of the currently running video driver.
-There is no way to get a list of all the supported
-video drivers.
+Once the display is initialized, this will return the name of the
+currently running video driver. There is no way to get a list of
+all the supported video drivers.
 </ul><br>&nbsp;<br>
 
 <a name=get_info><font size=+2><b>get_info
 </b></font><br><font size=+1><tt>
 pygame.display.get_info() -> VidInfo
 </tt></font><ul>
-Gets a vidinfo object that contains information
-about the capabilities and current state of the
-video driver. This can be called before the
-display mode is set, to determine the current
+Gets a vidinfo object that contains information about the
+capabilities and current state of the video driver. This can be
+called before the display mode is set, to determine the current
 video mode of a display.
+You can print the VidInfo object to see all its members and values.
 </ul><br>&nbsp;<br>
 
 <a name=get_init><font size=+2><b>get_init
 </b></font><br><font size=+1><tt>
 pygame.display.get_init() -> bool
 </tt></font><ul>
-Returns true if SDL's video system is currently
-intialized.
+Returns true if SDL's video system is currently intialized.
 </ul><br>&nbsp;<br>
 
 <a name=get_surface><font size=+2><b>get_surface
 </b></font><br><font size=+1><tt>
 pygame.display.get_surface() -> Surface
 </tt></font><ul>
-Returns a Surface object representing the current
-display. Will return None if called before the
-display mode is set.
+Returns a Surface object representing the current display. Will
+return None if called before the display mode is set.
 </ul><br>&nbsp;<br>
 
 <a name=iconify><font size=+2><b>iconify
 </b></font><br><font size=+1><tt>
 pygame.display.iconify() -> bool
 </tt></font><ul>
-Tells the window manager (if available) to
-minimize the application. The call will return
-true if successful. You will receive an APPACTIVE
-event on the event queue when the window has been
-minimized.
+Tells the window manager (if available) to minimize the
+application. The call will return true if successful. You will
+receive an APPACTIVE event on the event queue when the window has
+been minimized.
 </ul><br>&nbsp;<br>
 
 <a name=init><font size=+2><b>init
 </b></font><br><font size=+1><tt>
 pygame.display.init() -> None
 </tt></font><ul>
-Manually initialize SDL's video subsystem. Will
-raise an exception if it cannot be initialized. It
-is safe to call this function if the video has is
-currently initialized.
+Manually initialize SDL's video subsystem. Will raise an
+exception if it cannot be initialized. It is safe to call this
+function if the video has is currently initialized.
 </ul><br>&nbsp;<br>
 
 <a name=list_modes><font size=+2><b>list_modes
 </b></font><br><font size=+1><tt>
 pygame.display.list_modes([depth, [flags]]) -> [[x,y],...] | -1
 </tt></font><ul>
-This function returns a list of possible
-dimensions for a specified color depth. The return
-value will be an empty list of no display modes
-are available with the given arguments. A return
-value of -1 means that any requested resolution
-should work (this is likely the case for windowed
-modes). Mode sizes are sorted from biggest to
-smallest.
-
-If depth is not passed or 0, SDL will choose the
-current/best color depth for the display. You will
-usually want to pass FULLSCREEN when using the
-flags, if flags is omitted, FULLSCREEN is the
-default.
+This function returns a list of possible dimensions for a
+specified color depth. The return value will be an empty list of
+no display modes are available with the given arguments. A return
+value of -1 means that any requested resolution should work (this
+is likely the case for windowed modes). Mode sizes are sorted
+from biggest to smallest.
+<br>&nbsp;<br>
+If depth is not passed or 0, SDL will choose the current/best
+color depth for the display. You will usually want to pass
+FULLSCREEN when using the flags, if flags is omitted, FULLSCREEN
+is the default.
 </ul><br>&nbsp;<br>
 
 <a name=mode_ok><font size=+2><b>mode_ok
 pygame.display.mode_ok(size, [flags, [depth]]) -> int
 </tt></font><ul>
 This uses the same arguments as the call to
-pygame.display.set_mode(). It is used to determine
-if a requested display mode is available. It will
-return 0 if the requested mode is not possible.
-Otherwise it will return the best and closest
+pygame.display.set_mode(). It is used to determine if a requested
+display mode is available. It will return 0 if the requested mode
+is not possible. Otherwise it will return the best and closest
 matching bit depth for the mode requested.
-
-The size is a 2-number-sequence containing the
-width and height of the desired display mode.
-Flags represents a set of different options for
-the display mode. If omitted or given as 0, it
-will default to a simple software window. You can
-mix several flags together with the bitwise-or (|)
-operator. Possible flags are HWSURFACE (or the
-value 1), HWPALETTE, DOUBLEBUF, and/or FULLSCREEN.
-There are other flags available but these are the
-most usual. A full list of flags can be found in
-the SDL documentation.
-The optional depth arguement is the requested bits
-per pixel. It will usually be left omitted, in
-which case the display will use the best/fastest
-pixel depth available.
+<br>&nbsp;<br>
+The size is a 2-number-sequence containing the width and height
+of the desired display mode. Flags represents a set of different
+options for the display mode. If omitted or given as 0, it will
+default to a simple software window. You can mix several flags
+together with the bitwise-or (|) operator. Possible flags are
+HWSURFACE (or the value 1), HWPALETTE, DOUBLEBUF, and/or
+FULLSCREEN. There are other flags available but these are the
+most usual. A full list of flags can be found in the SDL
+documentation. The optional depth arguement is the requested bits
+per pixel. It will usually be left omitted, in which case the
+display will use the best/fastest pixel depth available.
 </ul><br>&nbsp;<br>
 
 <a name=quit><font size=+2><b>quit
 </b></font><br><font size=+1><tt>
 pygame.display.quit() -> None
 </tt></font><ul>
-Manually uninitialize SDL's video subsystem. It is
-safe to call this if the video is currently not
-initialized.
+Manually uninitialize SDL's video subsystem. It is safe to call
+this if the video is currently not initialized.
 </ul><br>&nbsp;<br>
 
 <a name=set_caption><font size=+2><b>set_caption
 </b></font><br><font size=+1><tt>
 pygame.display.set_caption(title, [icontitle]) -> None
 </tt></font><ul>
-If the display has a window title, this routine
-will change the
-name on the window. Some environments support a
-shorter icon title
-to be used when the display is minimized. If
-icontitle is omittied
-it will be the same as caption title.
-</ul><br>&nbsp;<br>
-
-<a name=set_driver><font size=+2><b>set_driver
-</b></font><br><font size=+1><tt>
-pygame.display.set_driver(name) -> None
-</tt></font><ul>
-Changes the SDL environment to initialize with the
-given named videodriver. This can only be changed
-before the display is initialized. If this is not
-called, SDL will use it's default video driver, or
-the one in the environment variable
-SDL_VIDEODRIVER.
+If the display has a window title, this routine will change the
+name on the window. Some environments support a shorter icon
+title to be used when the display is minimized. If icontitle is
+omittied it will be the same as caption title.
 </ul><br>&nbsp;<br>
 
 <a name=set_gamma><font size=+2><b>set_gamma
 </b></font><br><font size=+1><tt>
 pygame.display.set_gamma(r, [g, b]) -> bool
 </tt></font><ul>
-Sets the display gamma to the given amounts. If
-green and blue are ommitted, the red value will be
-used for all three colors. The color arguments are
-floating point values with 1.0 being the normal
-value.
-If you are using a display mode with a hardware
-palette, this will simply update the palette you
-are using. Not all hardware supports gamma. The
-return value will be true on success.
+Sets the display gamma to the given amounts. If green and blue
+are ommitted, the red value will be used for all three colors.
+The color arguments are floating point values with 1.0 being the
+normal value. If you are using a display mode with a hardware
+palette, this will simply update the palette you are using. Not
+all hardware supports gamma. The return value will be true on
+success.
 </ul><br>&nbsp;<br>
 
 <a name=set_mode><font size=+2><b>set_mode
 </b></font><br><font size=+1><tt>
 pygame.display.set_mode(size, [flags, [depth]]) -> Surface
 </tt></font><ul>
-Sets the current display mode. If calling this
-after the mode has already been set, this will
-change the display mode to the desired type.
-Sometimes an exact match for the requested video
-mode is not available. In this case SDL will try
-to find the closest match and work with that
-instead.
-
-The size is a 2-number-sequence containing the
-width and height of the desired display mode.
-Flags represents a set of different options for
-the new display mode. If omitted or given as 0, it
-will default to a simple software window. You can
-mix several flags together with the bitwise-or (|)
-operator. Possible flags are HWSURFACE (or the
-value 1), HWPALETTE, DOUBLEBUF, and/or FULLSCREEN.
-There are other flags available but these are the
-most usual. A full list of flags can be found in
-the SDL documentation.
-The optional depth arguement is the requested bits
-per pixel. It will usually be left omitted, in
-which case the display will use the best/fastest
-pixel depth available.
+Sets the current display mode. If calling this after the mode has
+already been set, this will change the display mode to the
+desired type. Sometimes an exact match for the requested video
+mode is not available. In this case SDL will try to find the
+closest match and work with that instead.
+<br>&nbsp;<br>
+The size is a 2-number-sequence containing the width and height
+of the desired display mode. Flags represents a set of different
+options for the new display mode. If omitted or given as 0, it
+will default to a simple software window. You can mix several
+flags together with the bitwise-or (|) operator. Possible flags
+are HWSURFACE (or the value 1), HWPALETTE, DOUBLEBUF, and/or
+FULLSCREEN. There are other flags available but these are the
+most usual. A full list of flags can be found in the SDL
+documentation. The optional depth arguement is the requested bits
+per pixel. It will usually be left omitted, in which case the
+display will use the best/fastest pixel depth available.
 </ul><br>&nbsp;<br>
 
 <a name=toggle_fullscreen><font size=+2><b>toggle_fullscreen
 </b></font><br><font size=+1><tt>
 pygame.display.toggle_fullscreen() -> bool
 </tt></font><ul>
-Tells the window manager (if available) to switch
-between windowed and fullscreen mode. If available
-and successfull, will return true. Note, there is
-currently limited platform support for this call.
+Tells the window manager (if available) to switch between
+windowed and fullscreen mode. If available and successfull, will
+return true. Note, there is currently limited platform support
+for this call.
 </ul><br>&nbsp;<br>
 
 <a name=update><font size=+2><b>update
 </b></font><br><font size=+1><tt>
 pygame.display.update([rectstyle]) -> None
 </tt></font><ul>
-This call will update a section (or sections) of
-the display screen. You must update an area of
-your display when you change its contents. If
-passed with no arguments, this will update the
-entire display surface. If you have many lists
-that need updating, it is best to combine them
-into a sequence and pass them all at once. This call
-will accept a sequence of rectstyle arguments
+This call will update a section (or sections) of the display
+screen. You must update an area of your display when you change
+its contents. If passed with no arguments, this will update the
+entire display surface. If you have many lists that need
+updating, it is best to combine them into a sequence and pass
+them all at once. This call will accept a sequence of rectstyle
+arguments
 </ul><br>&nbsp;<br>
 
 

docs/pygame_event.html

 
 <table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=#f5f5f5><tr valign=top>
 <td rowspan=2 width=60%><table border=0 cellpadding=5 cellspacing=0 bgcolor=#333377>
-<tr height=86 align=left><td valign=top><font color=#ffffff size=+5>
-	<a href=../>
-      <img src=mainlogo.gif width=300 height=100 alt="PyGame Logo" border=0></a></td>
+<tr height=86 align=left><td valign=middle><font color=#ffffff size=+5>
+	<a href=../><font size=+5 color=#ffffff><i><b>
+      pygame</b></i></font></a>&nbsp;&nbsp;</td>
 <td valign=middle><tt><font color=#dddddd><br>
 	PyGame<br>Documentation</font>
 </td></tr></table></td><td width=100% height=100% align=center valign=middle>
 <a href=Surface.html>Surface</a> || 
 <a href=pygame.html>pygame</a> || 
 <a href=pygame_cdrom.html>cdrom</a> || 
-<a href=pygame_display.html>display</a> ||<br>
-|| <a href=pygame_event.html>event</a> || 
+<a href=pygame_constants.html>constants</a> ||<br>
+|| <a href=pygame_display.html>display</a> || 
+<a href=pygame_event.html>event</a> || 
 <a href=pygame_font.html>font</a> || 
 <a href=pygame_image.html>image</a> || 
-<a href=pygame_joystick.html>joystick</a> || 
-<a href=pygame_key.html>key</a> ||<br>
-|| <a href=pygame_mixer.html>mixer</a> || 
+<a href=pygame_joystick.html>joystick</a> ||<br>
+|| <a href=pygame_key.html>key</a> || 
+<a href=pygame_mixer.html>mixer</a> || 
 <a href=pygame_mouse.html>mouse</a> || 
 <a href=pygame_music.html>music</a> || 
-<a href=pygame_surfarray.html>surfarray</a> || 
-<a href=pygame_time.html>time</a> ||<br>
+<a href=pygame_surfarray.html>surfarray</a> ||<br>
+|| <a href=pygame_time.html>time</a> ||<br>
 
 
 </td></tr></table>
 </b></font><br><font size=+1><tt>
 pygame.event.get([type]) -> list of Events
 </tt></font><ul>
-Pass this a type of event that you are interested
-in, and it will return a list of all matching
-event types from the queue. If no types are
-passed, this will return all the events from the
-queue. You may also optionally pass a sequence of
-event types. For example, to fetch all the
-keyboard events from the queue, you would call,
-'pygame.event.get([KEYDOWN,KEYUP])'.
+Pass this a type of event that you are interested in, and it will
+return a list of all matching event types from the queue. If no
+types are passed, this will return all the events from the queue.
+You may also optionally pass a sequence of event types. For
+example, to fetch all the keyboard events from the queue, you
+would call, 'pygame.event.get([KEYDOWN,KEYUP])'.
 </ul><br>&nbsp;<br>
 
 <a name=peek><font size=+2><b>peek
 </b></font><br><font size=+1><tt>
 pygame.event.peek([type]) -> bool
 </tt></font><ul>
-Pass this a type of event that you are interested
-in, and it will return true if there are any of
-that type of event on the queue. If no types are
-passed, this will return true if any events are on
-the queue. You may also optionally pass a sequence
-of event types. For example, to find if any
-keyboard events are on the queue, you would call,
-'pygame.event.peek([KEYDOWN,KEYUP])'.
+Pass this a type of event that you are interested in, and it will
+return true if there are any of that type of event on the queue.
+If no types are passed, this will return true if any events are
+on the queue. You may also optionally pass a sequence of event
+types. For example, to find if any keyboard events are on the
+queue, you would call, 'pygame.event.peek([KEYDOWN,KEYUP])'.
 </ul><br>&nbsp;<br>
 
 <a name=poll><font size=+2><b>poll
 </b></font><br><font size=+1><tt>
 pygame.event.poll() -> Event
 </tt></font><ul>
-Returns next event on queue. If there is no event
-waiting on the queue, this will return an event with
- type NOEVENT.
+Returns next event on queue. If there is no event waiting on the