A basic graphics package for the LPC4088 Display Module.
Dependents: lpc4088_displaymodule_demo_sphere sampleGUI sampleEmptyGUI lpc4088_displaymodule_fs_aid ... more
Fork of DMBasicGUI by
lpc_swim/lpc_swim.h@22:f0d00f29bfeb, 2019-11-04 (annotated)
- Committer:
- embeddedartists
- Date:
- Mon Nov 04 14:31:50 2019 +0000
- Revision:
- 22:f0d00f29bfeb
- Parent:
- 17:6e2abf107800
More updates related to mbed OS 5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
embeddedartists | 0:4977187e90c7 | 1 | /* |
embeddedartists | 0:4977187e90c7 | 2 | * @brief Simple Windowing Interface Manager (SWIM) |
embeddedartists | 0:4977187e90c7 | 3 | * |
embeddedartists | 0:4977187e90c7 | 4 | * @note |
embeddedartists | 0:4977187e90c7 | 5 | * Copyright(C) NXP Semiconductors, 2012 |
embeddedartists | 0:4977187e90c7 | 6 | * All rights reserved. |
embeddedartists | 0:4977187e90c7 | 7 | * |
embeddedartists | 0:4977187e90c7 | 8 | * @par |
embeddedartists | 0:4977187e90c7 | 9 | * Software that is described herein is for illustrative purposes only |
embeddedartists | 0:4977187e90c7 | 10 | * which provides customers with programming information regarding the |
embeddedartists | 0:4977187e90c7 | 11 | * LPC products. This software is supplied "AS IS" without any warranties of |
embeddedartists | 0:4977187e90c7 | 12 | * any kind, and NXP Semiconductors and its licensor disclaim any and |
embeddedartists | 0:4977187e90c7 | 13 | * all warranties, express or implied, including all implied warranties of |
embeddedartists | 0:4977187e90c7 | 14 | * merchantability, fitness for a particular purpose and non-infringement of |
embeddedartists | 0:4977187e90c7 | 15 | * intellectual property rights. NXP Semiconductors assumes no responsibility |
embeddedartists | 0:4977187e90c7 | 16 | * or liability for the use of the software, conveys no license or rights under any |
embeddedartists | 0:4977187e90c7 | 17 | * patent, copyright, mask work right, or any other intellectual property rights in |
embeddedartists | 0:4977187e90c7 | 18 | * or to any products. NXP Semiconductors reserves the right to make changes |
embeddedartists | 0:4977187e90c7 | 19 | * in the software without notification. NXP Semiconductors also makes no |
embeddedartists | 0:4977187e90c7 | 20 | * representation or warranty that such application will be suitable for the |
embeddedartists | 0:4977187e90c7 | 21 | * specified use without further testing or modification. |
embeddedartists | 0:4977187e90c7 | 22 | * |
embeddedartists | 0:4977187e90c7 | 23 | * @par |
embeddedartists | 0:4977187e90c7 | 24 | * Permission to use, copy, modify, and distribute this software and its |
embeddedartists | 0:4977187e90c7 | 25 | * documentation is hereby granted, under NXP Semiconductors' and its |
embeddedartists | 0:4977187e90c7 | 26 | * licensor's relevant copyrights in the software, without fee, provided that it |
embeddedartists | 0:4977187e90c7 | 27 | * is used in conjunction with NXP Semiconductors microcontrollers. This |
embeddedartists | 0:4977187e90c7 | 28 | * copyright, permission, and disclaimer notice must appear in all copies of |
embeddedartists | 0:4977187e90c7 | 29 | * this code. |
embeddedartists | 0:4977187e90c7 | 30 | */ |
embeddedartists | 0:4977187e90c7 | 31 | |
embeddedartists | 0:4977187e90c7 | 32 | #ifndef __LPC_SWIM_H_ |
embeddedartists | 0:4977187e90c7 | 33 | #define __LPC_SWIM_H_ |
embeddedartists | 0:4977187e90c7 | 34 | |
embeddedartists | 0:4977187e90c7 | 35 | #include "lpc_types.h" |
embeddedartists | 0:4977187e90c7 | 36 | #include "lpc_fonts.h" |
embeddedartists | 0:4977187e90c7 | 37 | #include "lpc_colors.h" |
embeddedartists | 0:4977187e90c7 | 38 | |
embeddedartists | 0:4977187e90c7 | 39 | #if defined(__cplusplus) |
embeddedartists | 0:4977187e90c7 | 40 | extern "C" |
embeddedartists | 0:4977187e90c7 | 41 | { |
embeddedartists | 0:4977187e90c7 | 42 | #endif |
embeddedartists | 0:4977187e90c7 | 43 | |
embeddedartists | 0:4977187e90c7 | 44 | /** @defgroup GUI_SWIM_SWIM Simple Windowing Interface Manager (SWIM) |
embeddedartists | 0:4977187e90c7 | 45 | * @ingroup GUI_SWIM |
embeddedartists | 0:4977187e90c7 | 46 | * This package provides the core SWIM capabilities such as |
embeddedartists | 0:4977187e90c7 | 47 | * Windows initialization and validity checks, Color support for |
embeddedartists | 0:4977187e90c7 | 48 | * background/primary/fill pens, graphics primatives, and Window |
embeddedartists | 0:4977187e90c7 | 49 | * deallocation. |
embeddedartists | 0:4977187e90c7 | 50 | * @{ |
embeddedartists | 0:4977187e90c7 | 51 | */ |
embeddedartists | 0:4977187e90c7 | 52 | |
embeddedartists | 0:4977187e90c7 | 53 | /** |
embeddedartists | 0:4977187e90c7 | 54 | * @brief Structure used to store information about a specific window |
embeddedartists | 0:4977187e90c7 | 55 | */ |
embeddedartists | 0:4977187e90c7 | 56 | typedef struct { |
embeddedartists | 0:4977187e90c7 | 57 | int32_t xpsize; /* Physical (absolute) horizontal screen size */ |
embeddedartists | 0:4977187e90c7 | 58 | int32_t ypsize; /* Physical (absolute) vertical screen size */ |
embeddedartists | 0:4977187e90c7 | 59 | int32_t xpmin; /* Physical left edge of window */ |
embeddedartists | 0:4977187e90c7 | 60 | int32_t ypmin; /* Physical top edge of window */ |
embeddedartists | 0:4977187e90c7 | 61 | int32_t xpmax; /* Physical right edge of window */ |
embeddedartists | 0:4977187e90c7 | 62 | int32_t ypmax; /* Physical bottom edge of window */ |
embeddedartists | 0:4977187e90c7 | 63 | int32_t bdsize; /* Size of window frame in pixels */ |
embeddedartists | 0:4977187e90c7 | 64 | int32_t xvsize; /* Virtual horizontal window size */ |
embeddedartists | 0:4977187e90c7 | 65 | int32_t yvsize; /* Virtual vertical window size */ |
embeddedartists | 0:4977187e90c7 | 66 | int32_t xpvmin; /* Physical left edge of draw window */ |
embeddedartists | 0:4977187e90c7 | 67 | int32_t ypvmin; /* Physical top edge of draw window */ |
embeddedartists | 0:4977187e90c7 | 68 | int32_t xpvmax; /* Physical right edge of draw window */ |
embeddedartists | 0:4977187e90c7 | 69 | int32_t ypvmax; /* Physical bottom edge of draw window */ |
embeddedartists | 0:4977187e90c7 | 70 | int32_t xvpos; /* Next virtual 'x' position of output */ |
embeddedartists | 0:4977187e90c7 | 71 | int32_t yvpos; /* Next virtual 'y' position of output */ |
embeddedartists | 0:4977187e90c7 | 72 | COLOR_T pen; /* Pen/text color */ |
embeddedartists | 0:4977187e90c7 | 73 | COLOR_T bkg; /* Window/text background color */ |
embeddedartists | 0:4977187e90c7 | 74 | COLOR_T fill; /* Fill/border color */ |
embeddedartists | 0:4977187e90c7 | 75 | FONT_T *font; /* Selected font structure */ |
embeddedartists | 0:4977187e90c7 | 76 | int32_t tfont; /* Transparent font background flag when true */ |
embeddedartists | 0:4977187e90c7 | 77 | COLOR_T *fb; /* Frame buffer address for the physical display */ |
embeddedartists | 0:4977187e90c7 | 78 | int32_t winused; /* Window used flag */ |
embeddedartists | 0:4977187e90c7 | 79 | BOOL_32 tfonts; /* Transparent font background flag */ |
embeddedartists | 0:4977187e90c7 | 80 | } SWIM_WINDOW_T; |
embeddedartists | 0:4977187e90c7 | 81 | |
embeddedartists | 0:4977187e90c7 | 82 | /** |
embeddedartists | 0:4977187e90c7 | 83 | * @brief Puts a pixel at the virtual X, Y coordinate in the window |
embeddedartists | 0:4977187e90c7 | 84 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 85 | * @param x1 : Virtual X position of pixel |
embeddedartists | 0:4977187e90c7 | 86 | * @param y1 : Virtual Y position of pixel |
embeddedartists | 0:4977187e90c7 | 87 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 88 | * @note The pixel will not be displayed if the pixel exceeds the window |
embeddedartists | 0:4977187e90c7 | 89 | * virtual size. Pixel positions below 0 should not be used with |
embeddedartists | 0:4977187e90c7 | 90 | * this function. |
embeddedartists | 0:4977187e90c7 | 91 | */ |
embeddedartists | 0:4977187e90c7 | 92 | void swim_put_pixel(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 93 | int32_t x1, |
embeddedartists | 0:4977187e90c7 | 94 | int32_t y1); |
embeddedartists | 0:4977187e90c7 | 95 | |
embeddedartists | 0:4977187e90c7 | 96 | /** |
embeddedartists | 0:4977187e90c7 | 97 | * @brief Draw a line in the virtual window with clipping |
embeddedartists | 0:4977187e90c7 | 98 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 99 | * @param x1 : Virtual X position of X line start |
embeddedartists | 0:4977187e90c7 | 100 | * @param y1 : Virtual Y position of Y line start |
embeddedartists | 0:4977187e90c7 | 101 | * @param x2 : Virtual X position of X line end |
embeddedartists | 0:4977187e90c7 | 102 | * @param y2 : Virtual Y position of Y line end |
embeddedartists | 0:4977187e90c7 | 103 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 104 | */ |
embeddedartists | 0:4977187e90c7 | 105 | void swim_put_line(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 106 | int32_t x1, |
embeddedartists | 0:4977187e90c7 | 107 | int32_t y1, |
embeddedartists | 0:4977187e90c7 | 108 | int32_t x2, |
embeddedartists | 0:4977187e90c7 | 109 | int32_t y2); |
embeddedartists | 0:4977187e90c7 | 110 | |
embeddedartists | 0:4977187e90c7 | 111 | /** |
embeddedartists | 0:4977187e90c7 | 112 | * @brief Draw a diamond in the virtual window |
embeddedartists | 0:4977187e90c7 | 113 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 114 | * @param x : Virtual X position of the diamond |
embeddedartists | 0:4977187e90c7 | 115 | * @param y : Virtual Y position of the diamond |
embeddedartists | 0:4977187e90c7 | 116 | * @param rx : Radius for horizontal |
embeddedartists | 0:4977187e90c7 | 117 | * @param ry : Radius for vertical |
embeddedartists | 0:4977187e90c7 | 118 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 119 | */ |
embeddedartists | 0:4977187e90c7 | 120 | void swim_put_diamond(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 121 | int32_t x, |
embeddedartists | 0:4977187e90c7 | 122 | int32_t y, |
embeddedartists | 0:4977187e90c7 | 123 | int32_t rx, |
embeddedartists | 0:4977187e90c7 | 124 | int32_t ry); |
embeddedartists | 0:4977187e90c7 | 125 | |
embeddedartists | 0:4977187e90c7 | 126 | /** |
embeddedartists | 0:4977187e90c7 | 127 | * @brief Draws a circle in the virtual window |
embeddedartists | 0:4977187e90c7 | 128 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 129 | * @param cx : Virtual center X position of the circle |
embeddedartists | 0:4977187e90c7 | 130 | * @param cy : Virtual center Y position of the circle |
embeddedartists | 0:4977187e90c7 | 131 | * @param radius : Radius of the circle |
embeddedartists | 0:4977187e90c7 | 132 | * @param Filled : Flag to indicate whether the circle should be filled |
embeddedartists | 0:4977187e90c7 | 133 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 134 | */ |
embeddedartists | 0:4977187e90c7 | 135 | void swim_put_circle(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 136 | int32_t cx, |
embeddedartists | 0:4977187e90c7 | 137 | int32_t cy, |
embeddedartists | 0:4977187e90c7 | 138 | int32_t radius, |
embeddedartists | 0:4977187e90c7 | 139 | int32_t Filled); |
embeddedartists | 0:4977187e90c7 | 140 | |
embeddedartists | 0:4977187e90c7 | 141 | /** |
embeddedartists | 0:4977187e90c7 | 142 | * @brief Fills the draw area of the display with the selected color |
embeddedartists | 0:4977187e90c7 | 143 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 144 | * @param colr : Color to place in the window |
embeddedartists | 0:4977187e90c7 | 145 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 146 | */ |
embeddedartists | 0:4977187e90c7 | 147 | void swim_clear_screen(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 148 | COLOR_T colr); |
embeddedartists | 0:4977187e90c7 | 149 | |
embeddedartists | 0:4977187e90c7 | 150 | /** |
embeddedartists | 0:4977187e90c7 | 151 | * @brief Place a box with corners (X1, Y1) and (X2, Y2) |
embeddedartists | 0:4977187e90c7 | 152 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 153 | * @param x1 : Virtual left position of box |
embeddedartists | 0:4977187e90c7 | 154 | * @param y1 : Virtual upper position of box |
embeddedartists | 0:4977187e90c7 | 155 | * @param x2 : Virtual right position of box |
embeddedartists | 0:4977187e90c7 | 156 | * @param y2 : Virtual lower position of box |
embeddedartists | 0:4977187e90c7 | 157 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 158 | * @note Use pen color for edges and fill color for center. |
embeddedartists | 0:4977187e90c7 | 159 | */ |
embeddedartists | 0:4977187e90c7 | 160 | void swim_put_box(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 161 | int32_t x1, |
embeddedartists | 0:4977187e90c7 | 162 | int32_t y1, |
embeddedartists | 0:4977187e90c7 | 163 | int32_t x2, |
embeddedartists | 0:4977187e90c7 | 164 | int32_t y2); |
embeddedartists | 0:4977187e90c7 | 165 | |
embeddedartists | 0:4977187e90c7 | 166 | /** |
embeddedartists | 0:4977187e90c7 | 167 | * @brief Initializes a window and the default values for the window |
embeddedartists | 17:6e2abf107800 | 168 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 169 | * @param xsize : Physical horizontal dimension of the display |
embeddedartists | 0:4977187e90c7 | 170 | * @param ysize : Physical vertical dimension of the display |
embeddedartists | 0:4977187e90c7 | 171 | * @param fbaddr : Address of the display's frame buffer |
embeddedartists | 0:4977187e90c7 | 172 | * @param xwin_min : Physical window left coordinate |
embeddedartists | 0:4977187e90c7 | 173 | * @param ywin_min : Physical window top coordinate |
embeddedartists | 0:4977187e90c7 | 174 | * @param xwin_max : Physical window right coordinate |
embeddedartists | 0:4977187e90c7 | 175 | * @param ywin_max : Physical window bottom coordinate |
embeddedartists | 0:4977187e90c7 | 176 | * @param border_width : Width of the window border in pixels |
embeddedartists | 0:4977187e90c7 | 177 | * @param pcolor : Pen color |
embeddedartists | 0:4977187e90c7 | 178 | * @param bkcolor : Background color |
embeddedartists | 0:4977187e90c7 | 179 | * @param fcolor : Fill color |
embeddedartists | 0:4977187e90c7 | 180 | * @return true if the window was initialized correctly, otherwise false |
embeddedartists | 0:4977187e90c7 | 181 | * @note This function must be called prior to any other window function. The |
embeddedartists | 0:4977187e90c7 | 182 | * window will be drawn in the background color. |
embeddedartists | 0:4977187e90c7 | 183 | */ |
embeddedartists | 0:4977187e90c7 | 184 | BOOL_32 swim_window_open(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 185 | int32_t xsize, |
embeddedartists | 0:4977187e90c7 | 186 | int32_t ysize, |
embeddedartists | 0:4977187e90c7 | 187 | COLOR_T *fbaddr, |
embeddedartists | 0:4977187e90c7 | 188 | int32_t xwin_min, |
embeddedartists | 0:4977187e90c7 | 189 | int32_t ywin_min, |
embeddedartists | 0:4977187e90c7 | 190 | int32_t xwin_max, |
embeddedartists | 0:4977187e90c7 | 191 | int32_t ywin_max, |
embeddedartists | 0:4977187e90c7 | 192 | int32_t border_width, |
embeddedartists | 0:4977187e90c7 | 193 | COLOR_T pcolor, |
embeddedartists | 0:4977187e90c7 | 194 | COLOR_T bkcolor, |
embeddedartists | 0:4977187e90c7 | 195 | COLOR_T fcolor); |
embeddedartists | 0:4977187e90c7 | 196 | |
embeddedartists | 0:4977187e90c7 | 197 | /** |
embeddedartists | 0:4977187e90c7 | 198 | * @brief Initializes a window without clearing it |
embeddedartists | 0:4977187e90c7 | 199 | * @param win s: Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 200 | * @param xsize : Physical horizontal dimension of the display |
embeddedartists | 0:4977187e90c7 | 201 | * @param ysize : Physical vertical dimension of the display |
embeddedartists | 0:4977187e90c7 | 202 | * @param fbaddr : Address of the display's frame buffer |
embeddedartists | 0:4977187e90c7 | 203 | * @param xwin_min : Physical window left coordinate |
embeddedartists | 0:4977187e90c7 | 204 | * @param ywin_min : Physical window top coordinate |
embeddedartists | 0:4977187e90c7 | 205 | * @param xwin_max : Physical window right coordinate |
embeddedartists | 0:4977187e90c7 | 206 | * @param ywin_max : Physical window bottom coordinate |
embeddedartists | 0:4977187e90c7 | 207 | * @param border_width : Width of the window border in pixels |
embeddedartists | 0:4977187e90c7 | 208 | * @param pcolor : Pen color |
embeddedartists | 0:4977187e90c7 | 209 | * @param bkcolor : Background color |
embeddedartists | 0:4977187e90c7 | 210 | * @param fcolor : Fill color |
embeddedartists | 0:4977187e90c7 | 211 | * @return true if the window was initialized correctly, otherwise false |
embeddedartists | 0:4977187e90c7 | 212 | * @note This function must be called prior to any other window function. |
embeddedartists | 0:4977187e90c7 | 213 | */ |
embeddedartists | 0:4977187e90c7 | 214 | BOOL_32 swim_window_open_noclear(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 215 | int32_t xsize, |
embeddedartists | 0:4977187e90c7 | 216 | int32_t ysize, |
embeddedartists | 0:4977187e90c7 | 217 | COLOR_T *fbaddr, |
embeddedartists | 0:4977187e90c7 | 218 | int32_t xwin_min, |
embeddedartists | 0:4977187e90c7 | 219 | int32_t ywin_min, |
embeddedartists | 0:4977187e90c7 | 220 | int32_t xwin_max, |
embeddedartists | 0:4977187e90c7 | 221 | int32_t ywin_max, |
embeddedartists | 0:4977187e90c7 | 222 | int32_t border_width, |
embeddedartists | 0:4977187e90c7 | 223 | COLOR_T pcolor, |
embeddedartists | 0:4977187e90c7 | 224 | COLOR_T bkcolor, |
embeddedartists | 0:4977187e90c7 | 225 | COLOR_T fcolor); |
embeddedartists | 0:4977187e90c7 | 226 | |
embeddedartists | 0:4977187e90c7 | 227 | /** |
embeddedartists | 0:4977187e90c7 | 228 | * @brief Deallocates a window |
embeddedartists | 0:4977187e90c7 | 229 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 230 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 231 | * @note This function does nothing. |
embeddedartists | 0:4977187e90c7 | 232 | */ |
embeddedartists | 0:4977187e90c7 | 233 | void swim_window_close(SWIM_WINDOW_T *win); |
embeddedartists | 0:4977187e90c7 | 234 | |
embeddedartists | 0:4977187e90c7 | 235 | /** |
embeddedartists | 0:4977187e90c7 | 236 | * @brief Sets the pen color |
embeddedartists | 0:4977187e90c7 | 237 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 238 | * @param pen_color : New pen color |
embeddedartists | 0:4977187e90c7 | 239 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 240 | */ |
embeddedartists | 0:4977187e90c7 | 241 | void swim_set_pen_color(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 242 | COLOR_T pen_color); |
embeddedartists | 0:4977187e90c7 | 243 | |
embeddedartists | 0:4977187e90c7 | 244 | /** |
embeddedartists | 0:4977187e90c7 | 245 | * @brief Sets the fill color |
embeddedartists | 0:4977187e90c7 | 246 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 247 | * @param fill_color : New fill color |
embeddedartists | 0:4977187e90c7 | 248 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 249 | */ |
embeddedartists | 0:4977187e90c7 | 250 | void swim_set_fill_color(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 251 | COLOR_T fill_color); |
embeddedartists | 0:4977187e90c7 | 252 | |
embeddedartists | 0:4977187e90c7 | 253 | /** |
embeddedartists | 0:4977187e90c7 | 254 | * @brief Sets the color used for backgrounds |
embeddedartists | 0:4977187e90c7 | 255 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 256 | * @param bkg_color : New background color |
embeddedartists | 0:4977187e90c7 | 257 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 258 | */ |
embeddedartists | 0:4977187e90c7 | 259 | void swim_set_bkg_color(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 260 | COLOR_T bkg_color); |
embeddedartists | 0:4977187e90c7 | 261 | |
embeddedartists | 0:4977187e90c7 | 262 | /** |
embeddedartists | 17:6e2abf107800 | 263 | * @brief Sets the font to be used for all new windows |
embeddedartists | 17:6e2abf107800 | 264 | * @param def_font : New default font |
embeddedartists | 17:6e2abf107800 | 265 | * @return Nothing |
embeddedartists | 17:6e2abf107800 | 266 | */ |
embeddedartists | 17:6e2abf107800 | 267 | void swim_set_default_font(const FONT_T* def_font); |
embeddedartists | 17:6e2abf107800 | 268 | |
embeddedartists | 17:6e2abf107800 | 269 | /** |
embeddedartists | 0:4977187e90c7 | 270 | * @brief Get the virtual window horizontal size |
embeddedartists | 0:4977187e90c7 | 271 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 272 | * @return The virtual window horizontal size |
embeddedartists | 0:4977187e90c7 | 273 | */ |
embeddedartists | 0:4977187e90c7 | 274 | int32_t swim_get_horizontal_size(SWIM_WINDOW_T *win); |
embeddedartists | 0:4977187e90c7 | 275 | |
embeddedartists | 0:4977187e90c7 | 276 | /** |
embeddedartists | 0:4977187e90c7 | 277 | * @brief Get the virtual window vertical size |
embeddedartists | 0:4977187e90c7 | 278 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 279 | * @return The virtual window vertical size |
embeddedartists | 0:4977187e90c7 | 280 | */ |
embeddedartists | 0:4977187e90c7 | 281 | int32_t swim_get_vertical_size(SWIM_WINDOW_T *win); |
embeddedartists | 0:4977187e90c7 | 282 | |
embeddedartists | 0:4977187e90c7 | 283 | #if defined(SWIM_DRIVER_INDIRECT) |
embeddedartists | 0:4977187e90c7 | 284 | /** |
embeddedartists | 0:4977187e90c7 | 285 | * @brief Puts a pixel at the physical X, Y coordinate. |
embeddedartists | 0:4977187e90c7 | 286 | * |
embeddedartists | 0:4977187e90c7 | 287 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 288 | * @param x1 : Physical X coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 289 | * @param y1 : Physical Y coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 290 | * @param color : Value to write to pixel |
embeddedartists | 0:4977187e90c7 | 291 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 292 | * @note This function must be implemented out side the |
embeddedartists | 0:4977187e90c7 | 293 | * swim library (in application). |
embeddedartists | 0:4977187e90c7 | 294 | */ |
embeddedartists | 0:4977187e90c7 | 295 | STATIC INLINE void swim_put_pixel_physical(SWIM_WINDOW_T *win, |
embeddedartists | 0:4977187e90c7 | 296 | int32_t x1, |
embeddedartists | 0:4977187e90c7 | 297 | int32_t y1, |
embeddedartists | 0:4977187e90c7 | 298 | COLOR_T color); |
embeddedartists | 0:4977187e90c7 | 299 | |
embeddedartists | 0:4977187e90c7 | 300 | /** |
embeddedartists | 0:4977187e90c7 | 301 | * @brief Read value of pixel at the physical X, Y coordinate. |
embeddedartists | 0:4977187e90c7 | 302 | * |
embeddedartists | 0:4977187e90c7 | 303 | * Note that this function must be implemented by the application! |
embeddedartists | 0:4977187e90c7 | 304 | * If not defined, there will be a link error. |
embeddedartists | 0:4977187e90c7 | 305 | * |
embeddedartists | 0:4977187e90c7 | 306 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 307 | * @param x1 : Physical X coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 308 | * @param y1 : Physical Y coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 309 | * @param color : Value to write to pixel |
embeddedartists | 0:4977187e90c7 | 310 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 311 | * @note This function must be implemented out side the |
embeddedartists | 0:4977187e90c7 | 312 | * swim library (in application). |
embeddedartists | 0:4977187e90c7 | 313 | */ |
embeddedartists | 0:4977187e90c7 | 314 | STATIC INLINE COLOR_T swim_get_pixel_physical(SWIM_WINDOW_T *win, int32_t x1, int32_t y1); |
embeddedartists | 0:4977187e90c7 | 315 | |
embeddedartists | 0:4977187e90c7 | 316 | #else /* Using frame buffers */ |
embeddedartists | 0:4977187e90c7 | 317 | /** |
embeddedartists | 0:4977187e90c7 | 318 | * @brief Read value of pixel at the physical X, Y coordinate from Frame Buffer. |
embeddedartists | 0:4977187e90c7 | 319 | * |
embeddedartists | 0:4977187e90c7 | 320 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 321 | * @param x1 : Physical X coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 322 | * @param y1 : Physical Y coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 323 | * @param color : Value to write to pixel |
embeddedartists | 0:4977187e90c7 | 324 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 325 | */ |
embeddedartists | 0:4977187e90c7 | 326 | STATIC INLINE COLOR_T swim_get_pixel_physical(SWIM_WINDOW_T *win, int32_t x1, int32_t y1) |
embeddedartists | 0:4977187e90c7 | 327 | { |
embeddedartists | 0:4977187e90c7 | 328 | return *(win->fb + x1 + (y1 * win->xpsize)); |
embeddedartists | 0:4977187e90c7 | 329 | } |
embeddedartists | 0:4977187e90c7 | 330 | |
embeddedartists | 0:4977187e90c7 | 331 | /** |
embeddedartists | 0:4977187e90c7 | 332 | * @brief Writes pixel color to Frame buffer at the physical X, Y coordinate |
embeddedartists | 0:4977187e90c7 | 333 | * |
embeddedartists | 0:4977187e90c7 | 334 | * @param win : Pointer to window data structure |
embeddedartists | 0:4977187e90c7 | 335 | * @param x1 : Physical X coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 336 | * @param y1 : Physical Y coordinate of pixel |
embeddedartists | 0:4977187e90c7 | 337 | * @param color : Value to write to pixel |
embeddedartists | 0:4977187e90c7 | 338 | * @return Nothing |
embeddedartists | 0:4977187e90c7 | 339 | */ |
embeddedartists | 0:4977187e90c7 | 340 | STATIC INLINE void swim_put_pixel_physical(SWIM_WINDOW_T *win, int32_t x1, int32_t y1, COLOR_T color) |
embeddedartists | 0:4977187e90c7 | 341 | { |
embeddedartists | 0:4977187e90c7 | 342 | *(win->fb + x1 + (y1 * win->xpsize)) = color; |
embeddedartists | 0:4977187e90c7 | 343 | } |
embeddedartists | 0:4977187e90c7 | 344 | #endif |
embeddedartists | 0:4977187e90c7 | 345 | |
embeddedartists | 0:4977187e90c7 | 346 | #if defined(__cplusplus) |
embeddedartists | 0:4977187e90c7 | 347 | } |
embeddedartists | 0:4977187e90c7 | 348 | #endif |
embeddedartists | 0:4977187e90c7 | 349 | |
embeddedartists | 0:4977187e90c7 | 350 | /** |
embeddedartists | 0:4977187e90c7 | 351 | * @} |
embeddedartists | 0:4977187e90c7 | 352 | */ |
embeddedartists | 0:4977187e90c7 | 353 | |
embeddedartists | 0:4977187e90c7 | 354 | #endif /* __LPC_SWIM_H_ */ |
embeddedartists | 0:4977187e90c7 | 355 |