Anonymous avatar Anonymous committed 31fa129

Fixed Mask documentation. Added write() method to BufferProxy.

Comments (0)

Files changed (8)

docs/ref/index.html

 </ul>
 <li><a href="mask.html#pygame.mask">pygame.mask</a> - <font size=-1>pygame module for image masks.</font></li>
 <ul>
-<li></li>
-<li><a href="mask.html#pygame.mask.get_at">pygame.mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></li>
-<li><a href="mask.html#pygame.mask.get_bounding_rects">pygame.mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></li>
-<li><a href="mask.html#pygame.mask.get_size">pygame.mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></li>
-<li><a href="mask.html#pygame.mask.overlap">pygame.mask.overlap</a> - <font size=-1>Returns nonzero if the masks overlap with the given offset.</font></li>
-<li><a href="mask.html#pygame.mask.overlap_area">pygame.mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></li>
-<li><a href="mask.html#pygame.mask.pygame.Mask">pygame.mask.pygame.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></li>
-<li><a href="mask.html#pygame.mask.pygame.mask.from_surface">pygame.mask.pygame.mask.from_surface</a> - <font size=-1>Returns the size of the mask.</font></li>
-<li><a href="mask.html#pygame.mask.set_at">pygame.mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></li>
+<li><a href="mask.html#pygame.mask.from_surface">pygame.mask.from_surface</a> - <font size=-1>Returns the size of the mask.</font></li>
+<li><a href="mask.html#pygame.mask.Mask">pygame.mask.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></li>
+<ul>
+<li><a href="mask.html#Mask.get_at">Mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></li>
+<li><a href="mask.html#Mask.get_bounding_rects">Mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></li>
+<li><a href="mask.html#Mask.get_size">Mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></li>
+<li><a href="mask.html#Mask.overlap">Mask.overlap</a> - <font size=-1>Returns nonzero if the masks overlap with the given offset.</font></li>
+<li><a href="mask.html#Mask.overlap_area">Mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></li>
+<li><a href="mask.html#Mask.set_at">Mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></li>
+</ul>
 </ul>
 <li><a href="mixer.html#pygame.mixer">pygame.mixer</a> - <font size=-1>pygame module for loading and playing sounds</font></li>
 <ul>
 </ul>
 <li><a href="pixelarray.html#pygame.PixelArray">pygame.PixelArray</a> - <font size=-1>pygame Object for direct pixel access of surfaces</font></li>
 <ul>
-<li><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface, the PixelArray uses</font></li>
+<li><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface the PixelArray uses.</font></li>
 </ul>
 <li><a href="rect.html#pygame.Rect">pygame.Rect</a> - <font size=-1>pygame object for storing rectangular coordinates</font></li>
 <ul>

docs/ref/mask.html

 <big><b>pygame.mask</big></b><br><ul>
   <i>pygame module for image masks.</i><br>
 <ul><small><table>
-  <tr><td><a href="mask.html#pygame.mask.pygame.mask.from_surface">pygame.mask.pygame.mask.from_surface</a> - <font size=-1>Returns the size of the mask.</font></td><td>Returns the size of the mask.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.pygame.Mask">pygame.mask.pygame.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></td><td>pygame object for representing 2d bitmasks</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.get_size">pygame.mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></td><td>Returns the size of the mask.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.get_at">pygame.mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></td><td>Returns nonzero if the bit at (x,y) is set.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.set_at">pygame.mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></td><td>Sets the position in the mask given by x and y.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.overlap">pygame.mask.overlap</a> - <font size=-1>Returns nonzero if the masks overlap with the given offset.</font></td><td>Returns nonzero if the masks overlap with the given offset.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.overlap_area">pygame.mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></td><td>Returns the number of overlapping 'pixels'.</td></tr>
-  <tr><td><a href="mask.html#pygame.mask.get_bounding_rects">pygame.mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></td><td>Returns a list of bounding rects of regions of set pixels.</td></tr>
-  <tr><td>None</td><td></td></tr>
+  <tr><td><a href="mask.html#pygame.mask.from_surface">pygame.mask.from_surface</a> - <font size=-1>Returns the size of the mask.</font></td><td>Returns the size of the mask.</td></tr>
+  <tr><td><a href="mask.html#pygame.mask.Mask">pygame.mask.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></td><td>pygame object for representing 2d bitmasks</td></tr>
 </table></small></ul>
 <p>Useful for fast pixel perfect collision detection. <tt>A</tt> Mask uses 1bit per pixel to store which parts collide. </p>
 <p>New in pygame <tt>1.8</tt>. </p>
 <!--COMMENTS:pygame.mask--> &nbsp;<br> 
 
 
-<a name="pygame.mask.pygame.mask.from_surface">
-<big><b>pygame.mask.pygame.mask.from_surface</big></b><br><ul>
+<a name="pygame.mask.from_surface">
+<big><b>pygame.mask.from_surface</big></b><br><ul>
   <i>Returns the size of the mask.</i><br>
   <tt>pygame.mask.from_surface(surface) -> Mask</tt><br>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.pygame.mask.from_surface--> &nbsp;<br> 
+<!--COMMENTS:pygame.mask.from_surface--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.pygame.Mask">
-<big><b>pygame.mask.pygame.Mask</big></b><br><ul>
+<a name="pygame.mask.Mask">
+<big><b>pygame.mask.Mask</big></b><br><ul>
   <i>pygame object for representing 2d bitmasks</i><br>
   <tt>pygame.Mask((width, height): return Mask</tt><br>
+<ul><small><table>
+  <tr><td><a href="mask.html#Mask.get_size">Mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></td><td>Returns the size of the mask.</td></tr>
+  <tr><td><a href="mask.html#Mask.get_at">Mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></td><td>Returns nonzero if the bit at (x,y) is set.</td></tr>
+  <tr><td><a href="mask.html#Mask.set_at">Mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></td><td>Sets the position in the mask given by x and y.</td></tr>
+  <tr><td><a href="mask.html#Mask.overlap">Mask.overlap</a> - <font size=-1>Returns nonzero if the masks overlap with the given offset.</font></td><td>Returns nonzero if the masks overlap with the given offset.</td></tr>
+  <tr><td><a href="mask.html#Mask.overlap_area">Mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></td><td>Returns the number of overlapping 'pixels'.</td></tr>
+  <tr><td><a href="mask.html#Mask.get_bounding_rects">Mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></td><td>Returns a list of bounding rects of regions of set pixels.</td></tr>
+</table></small></ul>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.pygame.Mask--> &nbsp;<br> 
-<br></ul>
+<!--COMMENTS:pygame.mask.Mask--> &nbsp;<br> 
 
 
-<a name="pygame.mask.get_size">
-<big><b>pygame.mask.get_size</big></b><br><ul>
+<a name="Mask.get_size">
+<big><b>Mask.get_size</big></b><br><ul>
   <i>Returns the size of the mask.</i><br>
   <tt>Mask.get_size() -> width,height</tt><br>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.get_size--> &nbsp;<br> 
+<!--COMMENTS:Mask.get_size--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.get_at">
-<big><b>pygame.mask.get_at</big></b><br><ul>
+<a name="Mask.get_at">
+<big><b>Mask.get_at</big></b><br><ul>
   <i>Returns nonzero if the bit at (x,y) is set.</i><br>
   <tt>Mask.get_at((x,y)) -> int</tt><br>
 <p>Coordinates start at (0,0) </p>
-<!--COMMENTS:pygame.mask.get_at--> &nbsp;<br> 
+<!--COMMENTS:Mask.get_at--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.set_at">
-<big><b>pygame.mask.set_at</big></b><br><ul>
+<a name="Mask.set_at">
+<big><b>Mask.set_at</big></b><br><ul>
   <i>Sets the position in the mask given by x and y.</i><br>
   <tt>Mask.set_at((x,y),value)</tt><br>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.set_at--> &nbsp;<br> 
+<!--COMMENTS:Mask.set_at--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.overlap">
-<big><b>pygame.mask.overlap</big></b><br><ul>
+<a name="Mask.overlap">
+<big><b>Mask.overlap</big></b><br><ul>
   <i>Returns nonzero if the masks overlap with the given offset.</i><br>
   <tt>Mask.overlap(othermask, offset) -> x,y</tt><br>
 <p>The overlap tests uses the following offsets (which may be negative): </p>
    |  |
    :  :
 </pre>
-<!--COMMENTS:pygame.mask.overlap--> &nbsp;<br> 
+<!--COMMENTS:Mask.overlap--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.overlap_area">
-<big><b>pygame.mask.overlap_area</big></b><br><ul>
+<a name="Mask.overlap_area">
+<big><b>Mask.overlap_area</big></b><br><ul>
   <i>Returns the number of overlapping 'pixels'.</i><br>
   <tt>Mask.overlap_area(othermask, offset) -> numpixels</tt><br>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.overlap_area--> &nbsp;<br> 
+<!--COMMENTS:Mask.overlap_area--> &nbsp;<br> 
 <br></ul>
 
 
-<a name="pygame.mask.get_bounding_rects">
-<big><b>pygame.mask.get_bounding_rects</big></b><br><ul>
+<a name="Mask.get_bounding_rects">
+<big><b>Mask.get_bounding_rects</big></b><br><ul>
   <i>Returns a list of bounding rects of regions of set pixels.</i><br>
   <tt>Mask.get_bounding_rects() -> Rects</tt><br>
  &nbsp;<br> 
-<!--COMMENTS:pygame.mask.get_bounding_rects--> &nbsp;<br> 
+<!--COMMENTS:Mask.get_bounding_rects--> &nbsp;<br> 
 <br></ul>
-
-
-<a name="">
-<big><b></big></b><br><ul>
- &nbsp;<br> 
-<!--COMMENTS:--> &nbsp;<br> 
 <br></ul>
 <br></ul>
 

docs/ref/pixelarray.html

   <i>pygame Object for direct pixel access of surfaces</i><br>
   <tt>pygame.PixelArray(surface): return PixelArray</tt><br>
 <ul><small><table>
-  <tr><td><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface, the PixelArray uses</font></td><td>Gets the Surface, the PixelArray uses</td></tr>
+  <tr><td><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface the PixelArray uses.</font></td><td>Gets the Surface the PixelArray uses.</td></tr>
 </table></small></ul>
 <p>The PixelArray wraps up a Surface and provides a direct <tt>2D</tt> array access to its pixels using the surface its rows as first and its columns as second axis. It supports slicing, row and pixel manipluation while inplace operations such as addition, subtraction, multiplication, division and slice assignments are not allowed. </p>
 <p>During its lifetime, the PixelArray locks the surface, thus you explicitly have to delete it once its not used anymore and the surface should perform operations in the same scope. </p>
 
 <a name="PixelArray.surface">
 <big><b>PixelArray.surface</big></b><br><ul>
-  <i>Gets the Surface, the PixelArray uses</i><br>
+  <i>Gets the Surface the PixelArray uses.</i><br>
   <tt>PixelArray.surface: Return Surface</tt><br>
-<p>Gets the Surface, the PixelArray was created for. </p>
+<p>The Surface, the PixelArray was created for. </p>
 <!--COMMENTS:PixelArray.surface--> &nbsp;<br> 
 <br></ul>
 <br></ul>

src/bufferproxy.c

                                    PyObject *kwds);
 static void _bufferproxy_dealloc (PyBufferProxy *self);
 static PyObject* _bufferproxy_get_dict (PyBufferProxy *self, void *closure);
+static PyObject* _bufferproxy_get_raw (PyBufferProxy *buffer, void *closure);
 static PyObject* _bufferproxy_repr (PyBufferProxy *self);
+static PyObject* _bufferproxy_write (PyBufferProxy *buffer, PyObject *args);
 
 /* Buffer methods */
 static Py_ssize_t _bufferproxy_getreadbuf (PyBufferProxy *buffer,
  */
 static PyMethodDef _bufferproxy_methods[] =
 {
+    { "write", (PyCFunction) _bufferproxy_write, METH_VARARGS,
+      "Writes raw data to the buffer" },
     { NULL, NULL, 0, NULL }
 };
 
 static PyGetSetDef _bufferproxy_getsets[] =
 {
     { "__dict__", (getter) _bufferproxy_get_dict, NULL, NULL, NULL },
+    { "raw", (getter) _bufferproxy_get_raw, NULL,
+      "The raw buffer data as string", NULL },
     { NULL, NULL, NULL, NULL, NULL }
 };
 
 {
     PyObject_HEAD_INIT(NULL)
     0,
-    "BufferProxy",               /* tp_name */
-    sizeof (PyBufferProxy),      /* tp_basicsize */
+    "BufferProxy",              /* tp_name */
+    sizeof (PyBufferProxy),     /* tp_basicsize */
     0,                          /* tp_itemsize */
     (destructor) _bufferproxy_dealloc, /* tp_dealloc */
     0,                          /* tp_print */
     offsetof (PyBufferProxy, dict), /* tp_dictoffset */
     0,                          /* tp_init */
     0,                          /* tp_alloc */
-    _bufferproxy_new,               /* tp_new */
+    _bufferproxy_new,           /* tp_new */
     0,                          /* tp_free */
     0,                          /* tp_is_gc */
     0,                          /* tp_bases */
     return self->dict;
 }
 
+/**
+ * Getter for PyBufferProxy.raw.
+ */
+static PyObject*
+_bufferproxy_get_raw (PyBufferProxy *buffer, void *closure)
+{
+    return PyString_FromStringAndSize (buffer->buffer, buffer->length);
+}
+
+/**** Methods ****/
+
+/**
+ * Representation method.
+ */
 static PyObject*
 _bufferproxy_repr (PyBufferProxy *self)
 {
-/* zd is for Py_size_t which python < 2.5 doesn't have. */
+    /* zd is for Py_size_t which python < 2.5 doesn't have. */
 #if PY_VERSION_HEX < 0x02050000
     return PyString_FromFormat("<BufferProxy(%d)>", self->length);
 #else
 #endif
 }
 
+/**
+ * Writes raw data to the buffer.
+ */
+static PyObject*
+_bufferproxy_write (PyBufferProxy *buffer, PyObject *args)
+{
+    Py_ssize_t offset;
+    Py_ssize_t length;
+    char *buf;
+
+    if (!PyArg_ParseTuple (args, "s#i", &buf, &length, &offset))
+        return NULL;
+
+    if (offset + length > buffer->length)
+    {
+        return RAISE (PyExc_IndexError, "bytes to write exceed buffer size");
+    }
+
+    memcpy (buffer->buffer + offset, buf, length);
+
+    Py_RETURN_NONE;
+}   
+
 /**** Buffer interfaces ****/
 
 static Py_ssize_t
         return;
 
     /* create the module */
-    module = Py_InitModule3 ("bufferproxy", NULL, NULL);
+    module = Py_InitModule3 ("bufferproxy", NULL,
+        "TODO");
     PyBufferProxy_Type.tp_getattro = PyObject_GenericGetAttr;
     Py_INCREF (&PyBufferProxy_Type);
     PyModule_AddObject (module, "BufferProxy", (PyObject *)&PyBufferProxy_Type);
 
 static PyMethodDef maskobj_builtins[] =
 {
-	{ "get_size", mask_get_size, METH_VARARGS, DOC_PYGAMEMASKGETSIZE},
-	{ "get_at", mask_get_at, METH_VARARGS, DOC_PYGAMEMASKGETAT },
-	{ "set_at", mask_set_at, METH_VARARGS, DOC_PYGAMEMASKSETAT },
-	{ "overlap", mask_overlap, METH_VARARGS, DOC_PYGAMEMASKOVERLAP },
-	{ "overlap_area", mask_overlap_area, METH_VARARGS, DOC_PYGAMEMASKOVERLAPAREA },
-	{ "get_bounding_rects", mask_get_bounding_rects, METH_VARARGS, DOC_PYGAMEMASKGETBOUNDINGRECTS },
+	{ "get_size", mask_get_size, METH_VARARGS, DOC_MASKGETSIZE},
+	{ "get_at", mask_get_at, METH_VARARGS, DOC_MASKGETAT },
+	{ "set_at", mask_set_at, METH_VARARGS, DOC_MASKSETAT },
+	{ "overlap", mask_overlap, METH_VARARGS, DOC_MASKOVERLAP },
+	{ "overlap_area", mask_overlap_area, METH_VARARGS,
+          DOC_MASKOVERLAPAREA },
+	{ "get_bounding_rects", mask_get_bounding_rects, METH_VARARGS,
+          DOC_MASKGETBOUNDINGRECTS },
 
 	{ NULL, NULL }
 };
 
 static PyMethodDef mask_builtins[] =
 {
-	{ "Mask", Mask, 1, DOC_PYGAMEMASKPYGAMEMASK},
-	{ "from_surface", mask_from_surface, METH_VARARGS, DOC_PYGAMEMASKPYGAMEMASKFROMSURFACE},
+	{ "Mask", Mask, 1, DOC_PYGAMEMASK },
+	{ "from_surface", mask_from_surface, METH_VARARGS,
+          DOC_PYGAMEMASKFROMSURFACE},
 	{ NULL, NULL }
 };
 
-
-
 void initmask(void)
 {
   PyObject *module, *dict;
 pixel to store which parts collide.
 
 New in pygame 1.8.
-
 <SECTION>
 
-
-pygame.mask.from_surface
+from_surface
 Returns the size of the mask.
 pygame.mask.from_surface(surface) -> Mask
-
 <END>
 
-
-pygame.Mask
+Mask
 pygame object for representing 2d bitmasks
 pygame.Mask((width, height): return Mask
-<END>
-
+<SECTION>
 
 get_size
 Returns the size of the mask.
 Mask.get_size() -> width,height
 <END>
 
-
 get_at
 Returns nonzero if the bit at (x,y) is set.
 Mask.get_at((x,y)) -> int
 Coordinates start at (0,0)
 <END>
 
-
 set_at
 Sets the position in the mask given by x and y.
 Mask.set_at((x,y),value)
 <END>
 
-
-
 overlap
 Returns nonzero if the masks overlap with the given offset. 
 Mask.overlap(othermask, offset) -> x,y
    :  :  
 <END>
 
-
 overlap_area
 Returns the number of overlapping 'pixels'.
 Mask.overlap_area(othermask, offset) -> numpixels
-
 <END>
 
-
 get_bounding_rects
 Returns a list of bounding rects of regions of set pixels.
 Mask.get_bounding_rects() -> Rects
-
 <END>
-
-
-
 <END>

src/pixelarray.doc

 During its lifetime, the PixelArray locks the surface, thus you
 explicitly have to delete it once its not used anymore and the surface
 should perform operations in the same scope.
-
 <SECTION>
 
+
 surface
-Gets the Surface, the PixelArray uses
+Gets the Surface the PixelArray uses.
 PixelArray.surface: Return Surface
 
-Gets the Surface, the PixelArray was created for.
+The Surface, the PixelArray was created for.
 <END>
 
 #define DOC_PYGAMEMASK "pygame module for image masks."
 
-#define DOC_PYGAMEMASKPYGAMEMASKFROMSURFACE "pygame.mask.from_surface(surface) -> Mask\nReturns the size of the mask."
+#define DOC_PYGAMEMASKFROMSURFACE "pygame.mask.from_surface(surface) -> Mask\nReturns the size of the mask."
 
-#define DOC_PYGAMEMASKPYGAMEMASK "pygame.Mask((width, height): return Mask\npygame object for representing 2d bitmasks"
+#define DOC_PYGAMEMASKMASK "pygame.Mask((width, height): return Mask\npygame object for representing 2d bitmasks"
 
-#define DOC_PYGAMEMASKGETSIZE "Mask.get_size() -> width,height\nReturns the size of the mask."
+#define DOC_MASKGETSIZE "Mask.get_size() -> width,height\nReturns the size of the mask."
 
-#define DOC_PYGAMEMASKGETAT "Mask.get_at((x,y)) -> int\nReturns nonzero if the bit at (x,y) is set."
+#define DOC_MASKGETAT "Mask.get_at((x,y)) -> int\nReturns nonzero if the bit at (x,y) is set."
 
-#define DOC_PYGAMEMASKSETAT "Mask.set_at((x,y),value)\nSets the position in the mask given by x and y."
+#define DOC_MASKSETAT "Mask.set_at((x,y),value)\nSets the position in the mask given by x and y."
 
-#define DOC_PYGAMEMASKOVERLAP "Mask.overlap(othermask, offset) -> x,y\nReturns nonzero if the masks overlap with the given offset."
+#define DOC_MASKOVERLAP "Mask.overlap(othermask, offset) -> x,y\nReturns nonzero if the masks overlap with the given offset."
 
-#define DOC_PYGAMEMASKOVERLAPAREA "Mask.overlap_area(othermask, offset) -> numpixels\nReturns the number of overlapping 'pixels'."
+#define DOC_MASKOVERLAPAREA "Mask.overlap_area(othermask, offset) -> numpixels\nReturns the number of overlapping 'pixels'."
 
-#define DOC_PYGAMEMASKGETBOUNDINGRECTS "Mask.get_bounding_rects() -> Rects\nReturns a list of bounding rects of regions of set pixels."
-
-#define DOC_ ""
+#define DOC_MASKGETBOUNDINGRECTS "Mask.get_bounding_rects() -> Rects\nReturns a list of bounding rects of regions of set pixels."
 
 #define DOC_PYGAMEMIXER "pygame module for loading and playing sounds"
 
 
 #define DOC_PYGAMEPIXELARRAY "pygame.PixelArray(surface): return PixelArray\npygame Object for direct pixel access of surfaces"
 
-#define DOC_PIXELARRAYSURFACE "PixelArray.surface: Return Surface\nGets the Surface, the PixelArray uses"
+#define DOC_PIXELARRAYSURFACE "PixelArray.surface: Return Surface\nGets the Surface the PixelArray uses."
 
 #define DOC_PYGAMERECT "pygame.Rect(left, top, width, height): return Rect\npygame.Rect((left, top), (width, height)): return Rect\npygame.Rect(object): return Rect\npygame object for storing rectangular coordinates"
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.