Add more Doxygen cross-referencing

Also:
- Rearrange the order of some member function declarations.
- Minor documentation changes.
This commit is contained in:
Scott Allen 2020-08-29 17:36:42 -04:00
parent 1264edc748
commit e78e7c9d55
1 changed files with 61 additions and 28 deletions

View File

@ -441,10 +441,19 @@ class Arduboy2Base : public Arduboy2Core
* \details * \details
* The entire contents of the screen buffer are cleared to BLACK. * The entire contents of the screen buffer are cleared to BLACK.
* *
* \see display(bool) * \see display(bool) fillScreen()
*/ */
void clear(); void clear();
/** \brief
* Fill the screen buffer with the specified color.
*
* \param color The fill color (optional; defaults to WHITE).
*
* \see clear()
*/
void fillScreen(uint8_t color = WHITE);
/** \brief /** \brief
* Copy the contents of the display buffer to the display. * Copy the contents of the display buffer to the display.
* *
@ -507,6 +516,8 @@ class Arduboy2Base : public Arduboy2Core
* \param y0 The Y coordinate of the circle's center. * \param y0 The Y coordinate of the circle's center.
* \param r The radius of the circle in pixels. * \param r The radius of the circle in pixels.
* \param color The circle's color (optional; defaults to WHITE). * \param color The circle's color (optional; defaults to WHITE).
*
* \see fillCircle()
*/ */
void drawCircle(int16_t x0, int16_t y0, uint8_t r, uint8_t color = WHITE); void drawCircle(int16_t x0, int16_t y0, uint8_t r, uint8_t color = WHITE);
@ -517,6 +528,8 @@ class Arduboy2Base : public Arduboy2Core
* \param y0 The Y coordinate of the circle's center. * \param y0 The Y coordinate of the circle's center.
* \param r The radius of the circle in pixels. * \param r The radius of the circle in pixels.
* \param color The circle's color (optional; defaults to WHITE). * \param color The circle's color (optional; defaults to WHITE).
*
* \see drawCircle()
*/ */
void fillCircle(int16_t x0, int16_t y0, uint8_t r, uint8_t color = WHITE); void fillCircle(int16_t x0, int16_t y0, uint8_t r, uint8_t color = WHITE);
@ -531,20 +544,11 @@ class Arduboy2Base : public Arduboy2Core
* Draw a line from the start point to the end point using * Draw a line from the start point to the end point using
* Bresenham's algorithm. * Bresenham's algorithm.
* The start and end points can be at any location with respect to the other. * The start and end points can be at any location with respect to the other.
*
* \see drawFastHLine() drawFastVLine()
*/ */
void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint8_t color = WHITE); void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint8_t color = WHITE);
/** \brief
* Draw a rectangle of a specified width and height.
*
* \param x The X coordinate of the upper left corner.
* \param y The Y coordinate of the upper left corner.
* \param w The width of the rectangle.
* \param h The height of the rectangle.
* \param color The color of the pixel (optional; defaults to WHITE).
*/
void drawRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t color = WHITE);
/** \brief /** \brief
* Draw a vertical line. * Draw a vertical line.
* *
@ -552,6 +556,8 @@ class Arduboy2Base : public Arduboy2Core
* \param y The Y coordinate of the upper start point. * \param y The Y coordinate of the upper start point.
* \param h The height of the line. * \param h The height of the line.
* \param color The color of the line (optional; defaults to WHITE). * \param color The color of the line (optional; defaults to WHITE).
*
* \see drawFastHLine() drawLine()
*/ */
void drawFastVLine(int16_t x, int16_t y, uint8_t h, uint8_t color = WHITE); void drawFastVLine(int16_t x, int16_t y, uint8_t h, uint8_t color = WHITE);
@ -562,9 +568,24 @@ class Arduboy2Base : public Arduboy2Core
* \param y The Y coordinate of the left start point. * \param y The Y coordinate of the left start point.
* \param w The width of the line. * \param w The width of the line.
* \param color The color of the line (optional; defaults to WHITE). * \param color The color of the line (optional; defaults to WHITE).
*
* \see drawFastVLine() drawLine()
*/ */
void drawFastHLine(int16_t x, int16_t y, uint8_t w, uint8_t color = WHITE); void drawFastHLine(int16_t x, int16_t y, uint8_t w, uint8_t color = WHITE);
/** \brief
* Draw a rectangle of a specified width and height.
*
* \param x The X coordinate of the upper left corner.
* \param y The Y coordinate of the upper left corner.
* \param w The width of the rectangle.
* \param h The height of the rectangle.
* \param color The color of the pixel (optional; defaults to WHITE).
*
* \see fillRect() drawRoundRect() fillRoundRect()
*/
void drawRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t color = WHITE);
/** \brief /** \brief
* Draw a filled-in rectangle of a specified width and height. * Draw a filled-in rectangle of a specified width and height.
* *
@ -573,16 +594,11 @@ class Arduboy2Base : public Arduboy2Core
* \param w The width of the rectangle. * \param w The width of the rectangle.
* \param h The height of the rectangle. * \param h The height of the rectangle.
* \param color The color of the pixel (optional; defaults to WHITE). * \param color The color of the pixel (optional; defaults to WHITE).
*
* \see drawRect() drawRoundRect() fillRoundRect()
*/ */
void fillRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t color = WHITE); void fillRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t color = WHITE);
/** \brief
* Fill the screen buffer with the specified color.
*
* \param color The fill color (optional; defaults to WHITE).
*/
void fillScreen(uint8_t color = WHITE);
/** \brief /** \brief
* Draw a rectangle with rounded corners. * Draw a rectangle with rounded corners.
* *
@ -592,6 +608,8 @@ class Arduboy2Base : public Arduboy2Core
* \param h The height of the rectangle. * \param h The height of the rectangle.
* \param r The radius of the semicircles forming the corners. * \param r The radius of the semicircles forming the corners.
* \param color The color of the rectangle (optional; defaults to WHITE). * \param color The color of the rectangle (optional; defaults to WHITE).
*
* \see fillRoundRect() drawRect() fillRect()
*/ */
void drawRoundRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t r, uint8_t color = WHITE); void drawRoundRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t r, uint8_t color = WHITE);
@ -604,6 +622,8 @@ class Arduboy2Base : public Arduboy2Core
* \param h The height of the rectangle. * \param h The height of the rectangle.
* \param r The radius of the semicircles forming the corners. * \param r The radius of the semicircles forming the corners.
* \param color The color of the rectangle (optional; defaults to WHITE). * \param color The color of the rectangle (optional; defaults to WHITE).
*
* \see drawRoundRect() drawRect() fillRect()
*/ */
void fillRoundRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t r, uint8_t color = WHITE); void fillRoundRect(int16_t x, int16_t y, uint8_t w, uint8_t h, uint8_t r, uint8_t color = WHITE);
@ -617,6 +637,8 @@ class Arduboy2Base : public Arduboy2Core
* \details * \details
* A triangle is drawn by specifying each of the three corner locations. * A triangle is drawn by specifying each of the three corner locations.
* The corners can be at any position with respect to the others. * The corners can be at any position with respect to the others.
*
* \see fillTriangle()
*/ */
void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color = WHITE); void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color = WHITE);
@ -630,8 +652,10 @@ class Arduboy2Base : public Arduboy2Core
* \details * \details
* A triangle is drawn by specifying each of the three corner locations. * A triangle is drawn by specifying each of the three corner locations.
* The corners can be at any position with respect to the others. * The corners can be at any position with respect to the others.
*
* \see drawTriangle()
*/ */
void fillTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color = WHITE); void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color = WHITE);
/** \brief /** \brief
* Draw a bitmap from an array in program memory. * Draw a bitmap from an array in program memory.
@ -654,6 +678,8 @@ class Arduboy2Base : public Arduboy2Core
* least significant bit at the top. * least significant bit at the top.
* *
* The array must be located in program memory by using the PROGMEM modifier. * The array must be located in program memory by using the PROGMEM modifier.
*
* \see drawCompressed() drawSlowXYBitmap() Sprites
*/ */
static void drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t color = WHITE); static void drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t color = WHITE);
@ -683,6 +709,8 @@ class Arduboy2Base : public Arduboy2Core
* slower than `drawBitmap()`, which uses bitmaps that are stored in a format * slower than `drawBitmap()`, which uses bitmaps that are stored in a format
* that allows them to be directly written to the screen. It is recommended * that allows them to be directly written to the screen. It is recommended
* you use `drawBitmap()` when possible. * you use `drawBitmap()` when possible.
*
* \see drawBitmap() drawCompressed()
*/ */
void drawSlowXYBitmap(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t color = WHITE); void drawSlowXYBitmap(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t color = WHITE);
@ -709,6 +737,8 @@ class Arduboy2Base : public Arduboy2Core
* C source code for a command line program named `Cabi`, which can convert * C source code for a command line program named `Cabi`, which can convert
* a PNG bitmap image file to source code suitable for use with * a PNG bitmap image file to source code suitable for use with
* `drawCompressed()`, is included in the `extras` directory of the library. * `drawCompressed()`, is included in the `extras` directory of the library.
*
* \see drawBitmap() drawSlowXYBitmap()
*/ */
static void drawCompressed(int16_t sx, int16_t sy, const uint8_t *bitmap, uint8_t color = WHITE); static void drawCompressed(int16_t sx, int16_t sy, const uint8_t *bitmap, uint8_t color = WHITE);
@ -755,7 +785,7 @@ class Arduboy2Base : public Arduboy2Core
* \details * \details
* Set the frame rate, in frames per second, used by `nextFrame()` to update * Set the frame rate, in frames per second, used by `nextFrame()` to update
* frames at a given rate. If this function or `setFrameDuration()` * frames at a given rate. If this function or `setFrameDuration()`
* isn't used, the default rate will be 60 (actually 62.5, see note below). * isn't used, the default rate will be 60 (actually 62.5; see note below).
* *
* Normally, the frame rate would be set to the desired value once, at the * Normally, the frame rate would be set to the desired value once, at the
* start of the game, but it can be changed at any time to alter the frame * start of the game, but it can be changed at any time to alter the frame
@ -802,7 +832,8 @@ class Arduboy2Base : public Arduboy2Core
* *
* \details * \details
* When this function returns `true`, the amount of time has elapsed to * When this function returns `true`, the amount of time has elapsed to
* display the next frame, as specified by `setFrameRate()`. * display the next frame, as specified by `setFrameRate()` or
* `setFrameDuration()`.
* *
* This function will normally be called at the start of the rendering loop * This function will normally be called at the start of the rendering loop
* which would wait for `true` to be returned before rendering and * which would wait for `true` to be returned before rendering and
@ -834,18 +865,20 @@ class Arduboy2Base : public Arduboy2Core
* development of a sketch. It does the same thing as `nextFrame()` but * development of a sketch. It does the same thing as `nextFrame()` but
* additionally will light the yellow TX LED (at the bottom, to the left * additionally will light the yellow TX LED (at the bottom, to the left
* of the USB connector) whenever a frame takes longer to generate than the * of the USB connector) whenever a frame takes longer to generate than the
* time allotted per frame, as determined by the `setFrameRate()` function. * time allotted per frame, as determined by the `setFrameRate()` or
* `setFrameDuration()` function.
* *
* Therefore, whenever the TX LED comes on (while not communicating over * Therefore, whenever the TX LED comes on (while not communicating over
* USB), it indicates that the sketch is running slower than the desired * USB), it indicates that the sketch is running slower than the desired
* rate set by `setFrameRate()`. In this case the developer may wish to set * rate set by `setFrameRate()` or `setFrameDuration()`. In this case the
* a slower frame rate, or reduce or optimize the code for such frames. * developer may wish to set a slower frame rate, or reduce or optimize the
* code for such frames.
* *
* \note * \note
* Once a sketch is ready for release, it would be expected that * Once a sketch is ready for release, it would be expected that
* `nextFrameDEV()` calls be restored to `nextFrame()`. * `nextFrameDEV()` calls be restored to `nextFrame()`.
* *
* \see nextFrame() cpuLoad() setFrameRate() * \see nextFrame() cpuLoad() setFrameRate() setFrameDuration()
*/ */
bool nextFrameDEV(); bool nextFrameDEV();
@ -872,7 +905,7 @@ class Arduboy2Base : public Arduboy2Core
* } * }
* \endcode * \endcode
* *
* \see setFrameRate() nextFrame() * \see setFrameRate() setFrameDuration() nextFrame()
*/ */
bool everyXFrames(uint8_t frames); bool everyXFrames(uint8_t frames);
@ -895,7 +928,7 @@ class Arduboy2Base : public Arduboy2Core
* that the frame rate should be made slower or the frame processing code * that the frame rate should be made slower or the frame processing code
* should be optimized to run faster. * should be optimized to run faster.
* *
* \see setFrameRate() nextFrame() * \see nextFrameDEV() setFrameRate() setFrameDuration() nextFrame()
*/ */
int cpuLoad(); int cpuLoad();