aboutsummaryrefslogtreecommitdiffstats
path: root/include/gdisp/options.h
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2013-10-12 13:24:40 +1000
committerinmarket <andrewh@inmarket.com.au>2013-10-12 13:24:40 +1000
commitd22bc07e7adf459b2b83fcd0e5bd6475c18e1e9a (patch)
tree0907d29a9695d1b93b02de1582345aea6446e991 /include/gdisp/options.h
parentb3ee216bd2565e8ab9298f1f54b8e6df762b7d58 (diff)
downloaduGFX-d22bc07e7adf459b2b83fcd0e5bd6475c18e1e9a.tar.gz
uGFX-d22bc07e7adf459b2b83fcd0e5bd6475c18e1e9a.tar.bz2
uGFX-d22bc07e7adf459b2b83fcd0e5bd6475c18e1e9a.zip
Multiple displays across one or more controllers is now fully supported.
Only the Win32 driver supports this so far. Other drivers are currently broken due to API changes and will be fixed.
Diffstat (limited to 'include/gdisp/options.h')
-rw-r--r--include/gdisp/options.h57
1 files changed, 44 insertions, 13 deletions
diff --git a/include/gdisp/options.h b/include/gdisp/options.h
index 1a0f6907..9af7788f 100644
--- a/include/gdisp/options.h
+++ b/include/gdisp/options.h
@@ -21,19 +21,6 @@
* @{
*/
/**
- * @brief Should support for multiple displays be provided.
- * @details Defaults to FALSE.
- * @note Setting this to TRUE can significantly increase code size as many
- * optimizations that remove code through conditional compilation can't
- * be done. It may also slow some graphics operations as extra tests must
- * be performed to determine how to do a particular operation. For these
- * reasons do not set it to TRUE unless you really need multiple display
- * support.
- */
- #ifndef GDISP_MULTIPLE_DRIVERS
- #define GDISP_MULTIPLE_DRIVERS FALSE
- #endif
- /**
* @brief Should all operations be clipped to the screen and colors validated.
* @details Defaults to TRUE.
* @note If this is FALSE, any operations that extend beyond the
@@ -158,6 +145,50 @@
/**
* @}
*
+ * @name GDISP Multiple Display Support
+ * @{
+ */
+ /**
+ * @brief The total number of displays.
+ * @note This can be on just one type of controller or spread across several different controllers
+ */
+ #ifndef GDISP_TOTAL_DISPLAYS
+ #define GDISP_TOTAL_DISPLAYS 1
+ #endif
+ /**
+ * @brief The total number of controllers.
+ * @note If this is greater than one, all the hardware acceleration options below
+ * and the pixel format must be manually specified in your gfxconf.h along with
+ * @p GDISP_CONTROLLER_LIST. See the gdisp_lld_config.h in each driver to get a list
+ * of hardware capabilities for each driver in order to work out the common set across
+ * all the controllers you want to use.
+ */
+ #ifndef GDISP_TOTAL_CONTROLLERS
+ #define GDISP_TOTAL_CONTROLLERS 1
+ #endif
+
+ #if defined(__DOXYGEN__)
+ /**
+ * @brief The list of controllers.
+ * @note This is required if @p GDISP_TOTAL_CONTROLLERS is greater than one.
+ * @note The number of entries must match @p GDISP_TOTAL_CONTROLLERS.
+ * @note See the gdisp_lld.c in each driver (near the top) to get the name of the VMT for a driver.
+ * @note Replace this example with your own definition in your gfxconf.h file.
+ */
+ #define GDISP_CONTROLLER_LIST GDISPVMT_Win32, GDISPVMT_SSD1963
+ /**
+ * @brief The number of displays for each controller.
+ * @note This is required if @p GDISP_TOTAL_CONTROLLERS is greater than one.
+ * @note The number of entries must match @p GDISP_TOTAL_CONTROLLERS.
+ * @note The sum of all the display counts must equal @p GDISP_TOTAL_DISPLAYS (3 for this example)
+ * or bad things will happen.
+ * @note Replace this example with your own definition in your gfxconf.h file.
+ */
+ #define GDISP_CONTROLLER_DISPLAYS 2, 1
+ #endif
+/**
+ * @}
+ *
* @name GDISP Image Options
* @pre GDISP_NEED_IMAGE must be TRUE
* @{