![](/media/cache/group/NXP_logo_RGB_web.png.50x50_q85.jpg)
RT1050 GUI demo using emWin library
emwin/emWin_header/LCD.h@0:dd702039127a, 2018-09-20 (annotated)
- Committer:
- alejandroRL
- Date:
- Thu Sep 20 19:16:34 2018 +0000
- Revision:
- 0:dd702039127a
emWin GUI Demo for RT1050
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alejandroRL | 0:dd702039127a | 1 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 2 | * SEGGER Microcontroller GmbH & Co. KG * |
alejandroRL | 0:dd702039127a | 3 | * Solutions for real time microcontroller applications * |
alejandroRL | 0:dd702039127a | 4 | ********************************************************************** |
alejandroRL | 0:dd702039127a | 5 | * * |
alejandroRL | 0:dd702039127a | 6 | * (c) 1996 - 2016 SEGGER Microcontroller GmbH & Co. KG * |
alejandroRL | 0:dd702039127a | 7 | * * |
alejandroRL | 0:dd702039127a | 8 | * Internet: www.segger.com Support: support@segger.com * |
alejandroRL | 0:dd702039127a | 9 | * * |
alejandroRL | 0:dd702039127a | 10 | ********************************************************************** |
alejandroRL | 0:dd702039127a | 11 | |
alejandroRL | 0:dd702039127a | 12 | ** emWin V5.38 - Graphical user interface for embedded applications ** |
alejandroRL | 0:dd702039127a | 13 | All Intellectual Property rights in the Software belongs to SEGGER. |
alejandroRL | 0:dd702039127a | 14 | emWin is protected by international copyright laws. Knowledge of the |
alejandroRL | 0:dd702039127a | 15 | source code may not be used to write a similar product. This file may |
alejandroRL | 0:dd702039127a | 16 | only be used in accordance with the following terms: |
alejandroRL | 0:dd702039127a | 17 | |
alejandroRL | 0:dd702039127a | 18 | The software has been licensed to NXP Semiconductors USA, Inc. whose |
alejandroRL | 0:dd702039127a | 19 | registered office is situated at 411 E. Plumeria Drive, San Jose, |
alejandroRL | 0:dd702039127a | 20 | CA 95134, USA solely for the purposes of creating libraries for |
alejandroRL | 0:dd702039127a | 21 | NXPs M0, M3/M4 and ARM7/9 processor-based devices, sublicensed and |
alejandroRL | 0:dd702039127a | 22 | distributed under the terms and conditions of the NXP End User License |
alejandroRL | 0:dd702039127a | 23 | Agreement. |
alejandroRL | 0:dd702039127a | 24 | Full source code is available at: www.segger.com |
alejandroRL | 0:dd702039127a | 25 | |
alejandroRL | 0:dd702039127a | 26 | We appreciate your understanding and fairness. |
alejandroRL | 0:dd702039127a | 27 | ---------------------------------------------------------------------- |
alejandroRL | 0:dd702039127a | 28 | Licensing information |
alejandroRL | 0:dd702039127a | 29 | |
alejandroRL | 0:dd702039127a | 30 | Licensor: SEGGER Microcontroller Systems LLC |
alejandroRL | 0:dd702039127a | 31 | Licensed to: NXP Semiconductors, 1109 McKay Dr, M/S 76, San Jose, CA 95131, USA |
alejandroRL | 0:dd702039127a | 32 | Licensed SEGGER software: emWin |
alejandroRL | 0:dd702039127a | 33 | License number: GUI-00186 |
alejandroRL | 0:dd702039127a | 34 | License model: emWin License Agreement, dated August 20th 2011 |
alejandroRL | 0:dd702039127a | 35 | Licensed product: - |
alejandroRL | 0:dd702039127a | 36 | Licensed platform: NXP's ARM 7/9, Cortex-M0,M3,M4 |
alejandroRL | 0:dd702039127a | 37 | Licensed number of seats: - |
alejandroRL | 0:dd702039127a | 38 | ---------------------------------------------------------------------- |
alejandroRL | 0:dd702039127a | 39 | File : LCD.h |
alejandroRL | 0:dd702039127a | 40 | Purpose : Declares LCD interface functions |
alejandroRL | 0:dd702039127a | 41 | ---------------------------------------------------------------------- |
alejandroRL | 0:dd702039127a | 42 | */ |
alejandroRL | 0:dd702039127a | 43 | |
alejandroRL | 0:dd702039127a | 44 | #ifndef LCD_H |
alejandroRL | 0:dd702039127a | 45 | #define LCD_H |
alejandroRL | 0:dd702039127a | 46 | |
alejandroRL | 0:dd702039127a | 47 | #include "GUI_ConfDefaults.h" /* Used for GUI_CONST_STORAGE */ |
alejandroRL | 0:dd702039127a | 48 | #include "Global.h" |
alejandroRL | 0:dd702039127a | 49 | |
alejandroRL | 0:dd702039127a | 50 | #if defined(__cplusplus) |
alejandroRL | 0:dd702039127a | 51 | extern "C" { /* Make sure we have C-declarations in C++ programs */ |
alejandroRL | 0:dd702039127a | 52 | #endif |
alejandroRL | 0:dd702039127a | 53 | |
alejandroRL | 0:dd702039127a | 54 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 55 | * |
alejandroRL | 0:dd702039127a | 56 | * Basic type defines |
alejandroRL | 0:dd702039127a | 57 | * |
alejandroRL | 0:dd702039127a | 58 | * The follwing are defines for types used in the LCD-driver and the |
alejandroRL | 0:dd702039127a | 59 | * GUI layers on top of that. Since "C" does not provide data types of |
alejandroRL | 0:dd702039127a | 60 | * fixed length which are identical on all platforms, this is done here. |
alejandroRL | 0:dd702039127a | 61 | * For most 16/32 controllers, the settings will work fine. However, if |
alejandroRL | 0:dd702039127a | 62 | * you have similar defines in other sections of your program, you might |
alejandroRL | 0:dd702039127a | 63 | * want to change or relocate these defines, e.g. in a TYPE.h file. |
alejandroRL | 0:dd702039127a | 64 | */ |
alejandroRL | 0:dd702039127a | 65 | #define I16P I16 /* signed 16 bits OR MORE ! */ |
alejandroRL | 0:dd702039127a | 66 | #define U16P U16 /* unsigned 16 bits OR MORE ! */ |
alejandroRL | 0:dd702039127a | 67 | |
alejandroRL | 0:dd702039127a | 68 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 69 | * |
alejandroRL | 0:dd702039127a | 70 | * Settings for windows simulation |
alejandroRL | 0:dd702039127a | 71 | * |
alejandroRL | 0:dd702039127a | 72 | * Some settings in the configuration may conflict with the values required |
alejandroRL | 0:dd702039127a | 73 | * in the Simulation. This is why we ignore the target settings for data |
alejandroRL | 0:dd702039127a | 74 | * types and use the correct settings for the simulation. |
alejandroRL | 0:dd702039127a | 75 | * (U32 could be defined as long, which would yield a 64 bit type on |
alejandroRL | 0:dd702039127a | 76 | * the PC) |
alejandroRL | 0:dd702039127a | 77 | */ |
alejandroRL | 0:dd702039127a | 78 | #ifdef WIN32 |
alejandroRL | 0:dd702039127a | 79 | #pragma warning( disable : 4244 ) // Disable warning messages in simulation |
alejandroRL | 0:dd702039127a | 80 | #pragma warning( disable : 4761 ) // Disable warning "integral size mismatch in argument; conversion supplied" |
alejandroRL | 0:dd702039127a | 81 | #endif |
alejandroRL | 0:dd702039127a | 82 | |
alejandroRL | 0:dd702039127a | 83 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 84 | * |
alejandroRL | 0:dd702039127a | 85 | * Constants |
alejandroRL | 0:dd702039127a | 86 | */ |
alejandroRL | 0:dd702039127a | 87 | #define LCD_ERR0 (0x10) |
alejandroRL | 0:dd702039127a | 88 | #define LCD_ERR_CONTROLLER_NOT_FOUND (LCD_ERR0+1) |
alejandroRL | 0:dd702039127a | 89 | #define LCD_ERR_MEMORY (LCD_ERR0+2) |
alejandroRL | 0:dd702039127a | 90 | |
alejandroRL | 0:dd702039127a | 91 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 92 | * |
alejandroRL | 0:dd702039127a | 93 | * Drawing modes |
alejandroRL | 0:dd702039127a | 94 | */ |
alejandroRL | 0:dd702039127a | 95 | #define LCD_DRAWMODE_NORMAL (0) |
alejandroRL | 0:dd702039127a | 96 | #define LCD_DRAWMODE_XOR (1<<0) |
alejandroRL | 0:dd702039127a | 97 | #define LCD_DRAWMODE_TRANS (1<<1) |
alejandroRL | 0:dd702039127a | 98 | #define LCD_DRAWMODE_REV (1<<2) |
alejandroRL | 0:dd702039127a | 99 | |
alejandroRL | 0:dd702039127a | 100 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 101 | * |
alejandroRL | 0:dd702039127a | 102 | * Typedefs |
alejandroRL | 0:dd702039127a | 103 | */ |
alejandroRL | 0:dd702039127a | 104 | typedef int LCD_DRAWMODE; |
alejandroRL | 0:dd702039127a | 105 | typedef U32 LCD_COLOR; |
alejandroRL | 0:dd702039127a | 106 | |
alejandroRL | 0:dd702039127a | 107 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 108 | * |
alejandroRL | 0:dd702039127a | 109 | * Data structures |
alejandroRL | 0:dd702039127a | 110 | */ |
alejandroRL | 0:dd702039127a | 111 | typedef struct { I16P x,y; } GUI_POINT; |
alejandroRL | 0:dd702039127a | 112 | typedef struct { I16 x0,y0,x1,y1; } LCD_RECT; |
alejandroRL | 0:dd702039127a | 113 | |
alejandroRL | 0:dd702039127a | 114 | typedef struct { |
alejandroRL | 0:dd702039127a | 115 | int NumEntries; |
alejandroRL | 0:dd702039127a | 116 | char HasTrans; |
alejandroRL | 0:dd702039127a | 117 | const LCD_COLOR * pPalEntries; |
alejandroRL | 0:dd702039127a | 118 | } LCD_LOGPALETTE; |
alejandroRL | 0:dd702039127a | 119 | |
alejandroRL | 0:dd702039127a | 120 | /* This is used for the simulation only ! */ |
alejandroRL | 0:dd702039127a | 121 | typedef struct { |
alejandroRL | 0:dd702039127a | 122 | int x,y; |
alejandroRL | 0:dd702039127a | 123 | unsigned char KeyStat; |
alejandroRL | 0:dd702039127a | 124 | } LCD_tMouseState; |
alejandroRL | 0:dd702039127a | 125 | |
alejandroRL | 0:dd702039127a | 126 | typedef struct { |
alejandroRL | 0:dd702039127a | 127 | int NumEntries; |
alejandroRL | 0:dd702039127a | 128 | const LCD_COLOR * pPalEntries; |
alejandroRL | 0:dd702039127a | 129 | } LCD_PHYSPALETTE; |
alejandroRL | 0:dd702039127a | 130 | |
alejandroRL | 0:dd702039127a | 131 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 132 | * |
alejandroRL | 0:dd702039127a | 133 | * LCD_L0_... color conversion |
alejandroRL | 0:dd702039127a | 134 | */ |
alejandroRL | 0:dd702039127a | 135 | typedef LCD_COLOR tLCDDEV_Index2Color (LCD_PIXELINDEX Index); |
alejandroRL | 0:dd702039127a | 136 | typedef LCD_PIXELINDEX tLCDDEV_Color2Index (LCD_COLOR Color); |
alejandroRL | 0:dd702039127a | 137 | typedef LCD_PIXELINDEX tLCDDEV_GetIndexMask (void); |
alejandroRL | 0:dd702039127a | 138 | |
alejandroRL | 0:dd702039127a | 139 | typedef void tLCDDEV_Index2ColorBulk(void * pIndex, LCD_COLOR * pColor, U32 NumItems, U8 SizeOfIndex); |
alejandroRL | 0:dd702039127a | 140 | typedef void tLCDDEV_Color2IndexBulk(LCD_COLOR * pColor, void * pIndex, U32 NumItems, U8 SizeOfIndex); |
alejandroRL | 0:dd702039127a | 141 | |
alejandroRL | 0:dd702039127a | 142 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 143 | * |
alejandroRL | 0:dd702039127a | 144 | * Color conversion API tables |
alejandroRL | 0:dd702039127a | 145 | */ |
alejandroRL | 0:dd702039127a | 146 | typedef struct { |
alejandroRL | 0:dd702039127a | 147 | tLCDDEV_Color2Index * pfColor2Index; |
alejandroRL | 0:dd702039127a | 148 | tLCDDEV_Index2Color * pfIndex2Color; |
alejandroRL | 0:dd702039127a | 149 | tLCDDEV_GetIndexMask * pfGetIndexMask; |
alejandroRL | 0:dd702039127a | 150 | int NoAlpha; |
alejandroRL | 0:dd702039127a | 151 | tLCDDEV_Color2IndexBulk * pfColor2IndexBulk; |
alejandroRL | 0:dd702039127a | 152 | tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk; |
alejandroRL | 0:dd702039127a | 153 | } LCD_API_COLOR_CONV; |
alejandroRL | 0:dd702039127a | 154 | |
alejandroRL | 0:dd702039127a | 155 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_0; |
alejandroRL | 0:dd702039127a | 156 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1; |
alejandroRL | 0:dd702039127a | 157 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_2; |
alejandroRL | 0:dd702039127a | 158 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_4; |
alejandroRL | 0:dd702039127a | 159 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_5; |
alejandroRL | 0:dd702039127a | 160 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_8; |
alejandroRL | 0:dd702039127a | 161 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_16; |
alejandroRL | 0:dd702039127a | 162 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1_24; |
alejandroRL | 0:dd702039127a | 163 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_2; |
alejandroRL | 0:dd702039127a | 164 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_4; |
alejandroRL | 0:dd702039127a | 165 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_5; |
alejandroRL | 0:dd702039127a | 166 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_6; |
alejandroRL | 0:dd702039127a | 167 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_8; |
alejandroRL | 0:dd702039127a | 168 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_16; |
alejandroRL | 0:dd702039127a | 169 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_1616I; |
alejandroRL | 0:dd702039127a | 170 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_111; |
alejandroRL | 0:dd702039127a | 171 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_222; |
alejandroRL | 0:dd702039127a | 172 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_233; |
alejandroRL | 0:dd702039127a | 173 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_323; |
alejandroRL | 0:dd702039127a | 174 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_332; |
alejandroRL | 0:dd702039127a | 175 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_444_12; |
alejandroRL | 0:dd702039127a | 176 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_444_12_1; |
alejandroRL | 0:dd702039127a | 177 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_444_16; |
alejandroRL | 0:dd702039127a | 178 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_555; |
alejandroRL | 0:dd702039127a | 179 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_565; |
alejandroRL | 0:dd702039127a | 180 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_556; |
alejandroRL | 0:dd702039127a | 181 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_655; |
alejandroRL | 0:dd702039127a | 182 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_666; |
alejandroRL | 0:dd702039127a | 183 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_666_9; |
alejandroRL | 0:dd702039127a | 184 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_822216; |
alejandroRL | 0:dd702039127a | 185 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_84444; |
alejandroRL | 0:dd702039127a | 186 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_8666; |
alejandroRL | 0:dd702039127a | 187 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_8666_1; |
alejandroRL | 0:dd702039127a | 188 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_88666I; |
alejandroRL | 0:dd702039127a | 189 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_888; |
alejandroRL | 0:dd702039127a | 190 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_8888; |
alejandroRL | 0:dd702039127a | 191 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M111; |
alejandroRL | 0:dd702039127a | 192 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M1555I; |
alejandroRL | 0:dd702039127a | 193 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M222; |
alejandroRL | 0:dd702039127a | 194 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M233; |
alejandroRL | 0:dd702039127a | 195 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M323; |
alejandroRL | 0:dd702039127a | 196 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M332; |
alejandroRL | 0:dd702039127a | 197 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M4444I; |
alejandroRL | 0:dd702039127a | 198 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M444_12; |
alejandroRL | 0:dd702039127a | 199 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M444_12_1; |
alejandroRL | 0:dd702039127a | 200 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M444_16; |
alejandroRL | 0:dd702039127a | 201 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M555; |
alejandroRL | 0:dd702039127a | 202 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M565; |
alejandroRL | 0:dd702039127a | 203 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M556; |
alejandroRL | 0:dd702039127a | 204 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M655; |
alejandroRL | 0:dd702039127a | 205 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M666; |
alejandroRL | 0:dd702039127a | 206 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M666_9; |
alejandroRL | 0:dd702039127a | 207 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M8565; |
alejandroRL | 0:dd702039127a | 208 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M888; |
alejandroRL | 0:dd702039127a | 209 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M8888; |
alejandroRL | 0:dd702039127a | 210 | extern const LCD_API_COLOR_CONV LCD_API_ColorConv_M8888I; |
alejandroRL | 0:dd702039127a | 211 | |
alejandroRL | 0:dd702039127a | 212 | #define GUICC_0 &LCD_API_ColorConv_0 |
alejandroRL | 0:dd702039127a | 213 | #define GUICC_1 &LCD_API_ColorConv_1 |
alejandroRL | 0:dd702039127a | 214 | #define GUICC_1_2 &LCD_API_ColorConv_1_2 |
alejandroRL | 0:dd702039127a | 215 | #define GUICC_1_4 &LCD_API_ColorConv_1_4 |
alejandroRL | 0:dd702039127a | 216 | #define GUICC_1_5 &LCD_API_ColorConv_1_5 |
alejandroRL | 0:dd702039127a | 217 | #define GUICC_1_8 &LCD_API_ColorConv_1_8 |
alejandroRL | 0:dd702039127a | 218 | #define GUICC_1_16 &LCD_API_ColorConv_1_16 |
alejandroRL | 0:dd702039127a | 219 | #define GUICC_1_24 &LCD_API_ColorConv_1_24 |
alejandroRL | 0:dd702039127a | 220 | #define GUICC_2 &LCD_API_ColorConv_2 |
alejandroRL | 0:dd702039127a | 221 | #define GUICC_4 &LCD_API_ColorConv_4 |
alejandroRL | 0:dd702039127a | 222 | #define GUICC_5 &LCD_API_ColorConv_5 |
alejandroRL | 0:dd702039127a | 223 | #define GUICC_6 &LCD_API_ColorConv_6 |
alejandroRL | 0:dd702039127a | 224 | #define GUICC_8 &LCD_API_ColorConv_8 |
alejandroRL | 0:dd702039127a | 225 | #define GUICC_16 &LCD_API_ColorConv_16 |
alejandroRL | 0:dd702039127a | 226 | #define GUICC_1616I &LCD_API_ColorConv_1616I |
alejandroRL | 0:dd702039127a | 227 | #define GUICC_111 &LCD_API_ColorConv_111 |
alejandroRL | 0:dd702039127a | 228 | #define GUICC_222 &LCD_API_ColorConv_222 |
alejandroRL | 0:dd702039127a | 229 | #define GUICC_233 &LCD_API_ColorConv_233 |
alejandroRL | 0:dd702039127a | 230 | #define GUICC_323 &LCD_API_ColorConv_323 |
alejandroRL | 0:dd702039127a | 231 | #define GUICC_332 &LCD_API_ColorConv_332 |
alejandroRL | 0:dd702039127a | 232 | #define GUICC_M4444I &LCD_API_ColorConv_M4444I |
alejandroRL | 0:dd702039127a | 233 | #define GUICC_444_12 &LCD_API_ColorConv_444_12 |
alejandroRL | 0:dd702039127a | 234 | #define GUICC_444_12_1 &LCD_API_ColorConv_444_12_1 |
alejandroRL | 0:dd702039127a | 235 | #define GUICC_444_16 &LCD_API_ColorConv_444_16 |
alejandroRL | 0:dd702039127a | 236 | #define GUICC_555 &LCD_API_ColorConv_555 |
alejandroRL | 0:dd702039127a | 237 | #define GUICC_565 &LCD_API_ColorConv_565 |
alejandroRL | 0:dd702039127a | 238 | #define GUICC_556 &LCD_API_ColorConv_556 |
alejandroRL | 0:dd702039127a | 239 | #define GUICC_655 &LCD_API_ColorConv_655 |
alejandroRL | 0:dd702039127a | 240 | #define GUICC_666 &LCD_API_ColorConv_666 |
alejandroRL | 0:dd702039127a | 241 | #define GUICC_666_9 &LCD_API_ColorConv_666_9 |
alejandroRL | 0:dd702039127a | 242 | #define GUICC_822216 &LCD_API_ColorConv_822216 |
alejandroRL | 0:dd702039127a | 243 | #define GUICC_84444 &LCD_API_ColorConv_84444 |
alejandroRL | 0:dd702039127a | 244 | #define GUICC_8666 &LCD_API_ColorConv_8666 |
alejandroRL | 0:dd702039127a | 245 | #define GUICC_8666_1 &LCD_API_ColorConv_8666_1 |
alejandroRL | 0:dd702039127a | 246 | #define GUICC_88666I &LCD_API_ColorConv_88666I |
alejandroRL | 0:dd702039127a | 247 | #define GUICC_888 &LCD_API_ColorConv_888 |
alejandroRL | 0:dd702039127a | 248 | #define GUICC_8888 &LCD_API_ColorConv_8888 |
alejandroRL | 0:dd702039127a | 249 | #define GUICC_M111 &LCD_API_ColorConv_M111 |
alejandroRL | 0:dd702039127a | 250 | #define GUICC_M1555I &LCD_API_ColorConv_M1555I |
alejandroRL | 0:dd702039127a | 251 | #define GUICC_M222 &LCD_API_ColorConv_M222 |
alejandroRL | 0:dd702039127a | 252 | #define GUICC_M233 &LCD_API_ColorConv_M233 |
alejandroRL | 0:dd702039127a | 253 | #define GUICC_M323 &LCD_API_ColorConv_M323 |
alejandroRL | 0:dd702039127a | 254 | #define GUICC_M332 &LCD_API_ColorConv_M332 |
alejandroRL | 0:dd702039127a | 255 | #define GUICC_M444_12 &LCD_API_ColorConv_M444_12 |
alejandroRL | 0:dd702039127a | 256 | #define GUICC_M444_12_1 &LCD_API_ColorConv_M444_12_1 |
alejandroRL | 0:dd702039127a | 257 | #define GUICC_M444_16 &LCD_API_ColorConv_M444_16 |
alejandroRL | 0:dd702039127a | 258 | #define GUICC_M555 &LCD_API_ColorConv_M555 |
alejandroRL | 0:dd702039127a | 259 | #define GUICC_M565 &LCD_API_ColorConv_M565 |
alejandroRL | 0:dd702039127a | 260 | #define GUICC_M556 &LCD_API_ColorConv_M556 |
alejandroRL | 0:dd702039127a | 261 | #define GUICC_M655 &LCD_API_ColorConv_M655 |
alejandroRL | 0:dd702039127a | 262 | #define GUICC_M666 &LCD_API_ColorConv_M666 |
alejandroRL | 0:dd702039127a | 263 | #define GUICC_M666_9 &LCD_API_ColorConv_M666_9 |
alejandroRL | 0:dd702039127a | 264 | #define GUICC_M8565 &LCD_API_ColorConv_M8565 |
alejandroRL | 0:dd702039127a | 265 | #define GUICC_M888 &LCD_API_ColorConv_M888 |
alejandroRL | 0:dd702039127a | 266 | #define GUICC_M8888 &LCD_API_ColorConv_M8888 |
alejandroRL | 0:dd702039127a | 267 | #define GUICC_M8888I &LCD_API_ColorConv_M8888I |
alejandroRL | 0:dd702039127a | 268 | |
alejandroRL | 0:dd702039127a | 269 | void GUICC_M1555I_SetCustColorConv(tLCDDEV_Color2IndexBulk * pfColor2IndexBulk, tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk); |
alejandroRL | 0:dd702039127a | 270 | void GUICC_M565_SetCustColorConv (tLCDDEV_Color2IndexBulk * pfColor2IndexBulk, tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk); |
alejandroRL | 0:dd702039127a | 271 | void GUICC_M4444I_SetCustColorConv(tLCDDEV_Color2IndexBulk * pfColor2IndexBulk, tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk); |
alejandroRL | 0:dd702039127a | 272 | void GUICC_M888_SetCustColorConv (tLCDDEV_Color2IndexBulk * pfColor2IndexBulk, tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk); |
alejandroRL | 0:dd702039127a | 273 | void GUICC_M8888I_SetCustColorConv(tLCDDEV_Color2IndexBulk * pfColor2IndexBulk, tLCDDEV_Index2ColorBulk * pfIndex2ColorBulk); |
alejandroRL | 0:dd702039127a | 274 | |
alejandroRL | 0:dd702039127a | 275 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 276 | * |
alejandroRL | 0:dd702039127a | 277 | * Compatibility defines for older versions |
alejandroRL | 0:dd702039127a | 278 | */ |
alejandroRL | 0:dd702039127a | 279 | #define GUI_COLOR_CONV_1 GUICC_1 |
alejandroRL | 0:dd702039127a | 280 | #define GUI_COLOR_CONV_2 GUICC_2 |
alejandroRL | 0:dd702039127a | 281 | #define GUI_COLOR_CONV_4 GUICC_4 |
alejandroRL | 0:dd702039127a | 282 | #define GUI_COLOR_CONV_8666 GUICC_8666 |
alejandroRL | 0:dd702039127a | 283 | #define GUI_COLOR_CONV_888 GUICC_888 |
alejandroRL | 0:dd702039127a | 284 | #define GUI_COLOR_CONV_8888 GUICC_8888 |
alejandroRL | 0:dd702039127a | 285 | #define GUI_COLOR_CONV_565 GUICC_565 |
alejandroRL | 0:dd702039127a | 286 | #define GUI_COLOR_CONV_M565 GUICC_M565 |
alejandroRL | 0:dd702039127a | 287 | |
alejandroRL | 0:dd702039127a | 288 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 289 | * |
alejandroRL | 0:dd702039127a | 290 | * LCDDEV function table |
alejandroRL | 0:dd702039127a | 291 | * |
alejandroRL | 0:dd702039127a | 292 | * Below the routines which need to in an LCDDEV routine table are |
alejandroRL | 0:dd702039127a | 293 | * defined. All of these routines have to be in the low-level driver |
alejandroRL | 0:dd702039127a | 294 | * (LCD_L0) or in the memory device which can be used to replace the |
alejandroRL | 0:dd702039127a | 295 | * driver. |
alejandroRL | 0:dd702039127a | 296 | * The one exception to this is the SetClipRect routine, which would |
alejandroRL | 0:dd702039127a | 297 | * be identical for all drivers and is therefor contained in the |
alejandroRL | 0:dd702039127a | 298 | * level above (LCD). |
alejandroRL | 0:dd702039127a | 299 | */ |
alejandroRL | 0:dd702039127a | 300 | typedef void tLCDDEV_DrawPixel (int x, int y); |
alejandroRL | 0:dd702039127a | 301 | typedef void tLCDDEV_DrawHLine (int x0, int y0, int x1); |
alejandroRL | 0:dd702039127a | 302 | typedef void tLCDDEV_DrawVLine (int x , int y0, int y1); |
alejandroRL | 0:dd702039127a | 303 | typedef void tLCDDEV_FillRect (int x0, int y0, int x1, int y1); |
alejandroRL | 0:dd702039127a | 304 | typedef unsigned int tLCDDEV_GetPixelIndex(int x, int y); |
alejandroRL | 0:dd702039127a | 305 | typedef void tLCDDEV_SetPixelIndex(int x, int y, int ColorIndex); |
alejandroRL | 0:dd702039127a | 306 | typedef void tLCDDEV_XorPixel (int x, int y); |
alejandroRL | 0:dd702039127a | 307 | typedef void tLCDDEV_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
alejandroRL | 0:dd702039127a | 308 | typedef void tLCDDEV_FillPolygonAA(const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
alejandroRL | 0:dd702039127a | 309 | typedef void tLCDDEV_GetRect (LCD_RECT * pRect); |
alejandroRL | 0:dd702039127a | 310 | typedef int tLCDDEV_Init (void); |
alejandroRL | 0:dd702039127a | 311 | typedef void tLCDDEV_On (void); |
alejandroRL | 0:dd702039127a | 312 | typedef void tLCDDEV_Off (void); |
alejandroRL | 0:dd702039127a | 313 | typedef void tLCDDEV_SetLUTEntry (U8 Pos, LCD_COLOR color); |
alejandroRL | 0:dd702039127a | 314 | typedef void * tLCDDEV_GetDevFunc (int Index); |
alejandroRL | 0:dd702039127a | 315 | typedef I32 tLCDDEV_GetDevProp (int Index); |
alejandroRL | 0:dd702039127a | 316 | typedef void tLCDDEV_SetOrg (int x, int y); |
alejandroRL | 0:dd702039127a | 317 | |
alejandroRL | 0:dd702039127a | 318 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 319 | * |
alejandroRL | 0:dd702039127a | 320 | * Memory device API tables |
alejandroRL | 0:dd702039127a | 321 | */ |
alejandroRL | 0:dd702039127a | 322 | typedef struct GUI_DEVICE GUI_DEVICE; |
alejandroRL | 0:dd702039127a | 323 | typedef struct GUI_DEVICE_API GUI_DEVICE_API; |
alejandroRL | 0:dd702039127a | 324 | |
alejandroRL | 0:dd702039127a | 325 | typedef void tLCDDEV_DrawBitmap (int x0, int y0, int xsize, int ysize, |
alejandroRL | 0:dd702039127a | 326 | int BitsPerPixel, int BytesPerLine, |
alejandroRL | 0:dd702039127a | 327 | const U8 * pData, int Diff, |
alejandroRL | 0:dd702039127a | 328 | const void * pTrans); /* Really LCD_PIXELINDEX, but is void to avoid compiler warnings */ |
alejandroRL | 0:dd702039127a | 329 | #define GUI_MEMDEV_APILIST_1 &GUI_MEMDEV_DEVICE_1 |
alejandroRL | 0:dd702039127a | 330 | #define GUI_MEMDEV_APILIST_8 &GUI_MEMDEV_DEVICE_8 |
alejandroRL | 0:dd702039127a | 331 | #define GUI_MEMDEV_APILIST_16 &GUI_MEMDEV_DEVICE_16 |
alejandroRL | 0:dd702039127a | 332 | #define GUI_MEMDEV_APILIST_32 &GUI_MEMDEV_DEVICE_32 |
alejandroRL | 0:dd702039127a | 333 | |
alejandroRL | 0:dd702039127a | 334 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 335 | * |
alejandroRL | 0:dd702039127a | 336 | * Defines for device capabilities |
alejandroRL | 0:dd702039127a | 337 | * |
alejandroRL | 0:dd702039127a | 338 | * The following is the list of device capabilities which can, but do |
alejandroRL | 0:dd702039127a | 339 | * not have to be implemented in the driver. This way the driver can be |
alejandroRL | 0:dd702039127a | 340 | * enhanced in the future without affecting the driver interface, |
alejandroRL | 0:dd702039127a | 341 | * keeping older drivers compatible. |
alejandroRL | 0:dd702039127a | 342 | * More DevCaps can always be added in the future, as older drivers |
alejandroRL | 0:dd702039127a | 343 | * are guaranteed to return 0 for all unimplemented features or queries. |
alejandroRL | 0:dd702039127a | 344 | * |
alejandroRL | 0:dd702039127a | 345 | * The values below define the legal parameters to the LCD_GetDeviceCaps |
alejandroRL | 0:dd702039127a | 346 | * and the LCD_GetpCapFunc routines. |
alejandroRL | 0:dd702039127a | 347 | */ |
alejandroRL | 0:dd702039127a | 348 | |
alejandroRL | 0:dd702039127a | 349 | #define LCD_DEVCAP_XSIZE 0x01 /* Quest horiz. res. of display */ |
alejandroRL | 0:dd702039127a | 350 | #define LCD_DEVCAP_YSIZE 0x02 /* Quest vert. res. of display */ |
alejandroRL | 0:dd702039127a | 351 | #define LCD_DEVCAP_VXSIZE 0x03 /* Quest vert. res. of virtual disp.*/ |
alejandroRL | 0:dd702039127a | 352 | #define LCD_DEVCAP_VYSIZE 0x04 /* Quest vert. res. of virtual disp.*/ |
alejandroRL | 0:dd702039127a | 353 | #define LCD_DEVCAP_XORG 0x05 /* X-origin ... usually 0 */ |
alejandroRL | 0:dd702039127a | 354 | #define LCD_DEVCAP_YORG 0x06 /* Y-origin ... usually 0 */ |
alejandroRL | 0:dd702039127a | 355 | #define LCD_DEVCAP_CONTROLLER 0x07 /* LCD Controller (Numerical) */ |
alejandroRL | 0:dd702039127a | 356 | #define LCD_DEVCAP_BITSPERPIXEL 0x08 /* Bits per pixel ... 1/2/4/8 */ |
alejandroRL | 0:dd702039127a | 357 | #define LCD_DEVCAP_NUMCOLORS 0x09 /* Quest number of colors */ |
alejandroRL | 0:dd702039127a | 358 | #define LCD_DEVCAP_XMAG 0x0A |
alejandroRL | 0:dd702039127a | 359 | #define LCD_DEVCAP_YMAG 0x0B |
alejandroRL | 0:dd702039127a | 360 | #define LCD_DEVCAP_MIRROR_X 0x0C |
alejandroRL | 0:dd702039127a | 361 | #define LCD_DEVCAP_MIRROR_Y 0x0D |
alejandroRL | 0:dd702039127a | 362 | #define LCD_DEVCAP_SWAP_XY 0x0E |
alejandroRL | 0:dd702039127a | 363 | #define LCD_DEVCAP_SWAP_RB 0x0F |
alejandroRL | 0:dd702039127a | 364 | |
alejandroRL | 0:dd702039127a | 365 | int LCD_GetXSizeMax(void); |
alejandroRL | 0:dd702039127a | 366 | int LCD_GetYSizeMax(void); |
alejandroRL | 0:dd702039127a | 367 | int LCD_GetVXSizeMax(void); |
alejandroRL | 0:dd702039127a | 368 | int LCD_GetVYSizeMax(void); |
alejandroRL | 0:dd702039127a | 369 | int LCD_GetBitsPerPixelMax(void); |
alejandroRL | 0:dd702039127a | 370 | void LCD_SetDisplaySize(int xSizeDisplay, int ySizeDisplay); |
alejandroRL | 0:dd702039127a | 371 | int LCD_GetXSizeDisplay(void); |
alejandroRL | 0:dd702039127a | 372 | int LCD_GetYSizeDisplay(void); |
alejandroRL | 0:dd702039127a | 373 | |
alejandroRL | 0:dd702039127a | 374 | int LCD_GetXSizeEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 375 | int LCD_GetYSizeEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 376 | int LCD_GetVXSizeEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 377 | int LCD_GetVYSizeEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 378 | int LCD_GetBitsPerPixelEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 379 | U32 LCD_GetNumColorsEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 380 | int LCD_GetXMagEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 381 | int LCD_GetYMagEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 382 | int LCD_GetMirrorXEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 383 | int LCD_GetMirrorYEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 384 | int LCD_GetSwapXYEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 385 | int LCD_GetReversLUTEx (int LayerIndex); |
alejandroRL | 0:dd702039127a | 386 | int LCD_GetPhysColorsInRAMEx(int LayerIndex); |
alejandroRL | 0:dd702039127a | 387 | |
alejandroRL | 0:dd702039127a | 388 | int LCD_GetXSize (void); |
alejandroRL | 0:dd702039127a | 389 | int LCD_GetYSize (void); |
alejandroRL | 0:dd702039127a | 390 | int LCD_GetVXSize (void); |
alejandroRL | 0:dd702039127a | 391 | int LCD_GetVYSize (void); |
alejandroRL | 0:dd702039127a | 392 | int LCD_GetBitsPerPixel (void); |
alejandroRL | 0:dd702039127a | 393 | U32 LCD_GetNumColors (void); |
alejandroRL | 0:dd702039127a | 394 | int LCD_GetXMag (void); |
alejandroRL | 0:dd702039127a | 395 | int LCD_GetYMag (void); |
alejandroRL | 0:dd702039127a | 396 | int LCD_GetMirrorX (void); |
alejandroRL | 0:dd702039127a | 397 | int LCD_GetMirrorY (void); |
alejandroRL | 0:dd702039127a | 398 | int LCD_GetSwapXY (void); |
alejandroRL | 0:dd702039127a | 399 | int LCD_GetReversLUT (void); |
alejandroRL | 0:dd702039127a | 400 | int LCD_GetPhysColorsInRAM (void); |
alejandroRL | 0:dd702039127a | 401 | |
alejandroRL | 0:dd702039127a | 402 | I32 LCD__GetBPP (U32 IndexMask); |
alejandroRL | 0:dd702039127a | 403 | I32 LCD__GetBPPDevice(U32 IndexMask); |
alejandroRL | 0:dd702039127a | 404 | |
alejandroRL | 0:dd702039127a | 405 | tLCDDEV_Index2Color * LCD_GetpfIndex2ColorEx(int LayerIndex); |
alejandroRL | 0:dd702039127a | 406 | tLCDDEV_Color2Index * LCD_GetpfColor2IndexEx(int LayerIndex); |
alejandroRL | 0:dd702039127a | 407 | |
alejandroRL | 0:dd702039127a | 408 | tLCDDEV_Color2Index * LCD_GetpfColor2Index(void); |
alejandroRL | 0:dd702039127a | 409 | |
alejandroRL | 0:dd702039127a | 410 | int LCD_GetNumLayers(void); |
alejandroRL | 0:dd702039127a | 411 | |
alejandroRL | 0:dd702039127a | 412 | LCD_COLOR * LCD_GetPalette (void); |
alejandroRL | 0:dd702039127a | 413 | LCD_COLOR * LCD_GetPaletteEx(int LayerIndex); |
alejandroRL | 0:dd702039127a | 414 | |
alejandroRL | 0:dd702039127a | 415 | void (* LCD_GetDevFunc(int LayerIndex, int Item))(void); |
alejandroRL | 0:dd702039127a | 416 | |
alejandroRL | 0:dd702039127a | 417 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 418 | * |
alejandroRL | 0:dd702039127a | 419 | * Values for requesting and setting function pointers (display driver) |
alejandroRL | 0:dd702039127a | 420 | */ |
alejandroRL | 0:dd702039127a | 421 | /* Request of a function pointer for... */ |
alejandroRL | 0:dd702039127a | 422 | #define LCD_DEVFUNC_READRECT 0x01 /* ...reading a rectangular display area */ |
alejandroRL | 0:dd702039127a | 423 | #define LCD_DEVFUNC_SETALPHA 0x02 /* ...setting the alpha blending factor */ |
alejandroRL | 0:dd702039127a | 424 | #define LCD_DEVFUNC_SETPOS 0x03 /* ...setting the layer position */ |
alejandroRL | 0:dd702039127a | 425 | #define LCD_DEVFUNC_GETPOS 0x04 /* ...getting the layer position */ |
alejandroRL | 0:dd702039127a | 426 | #define LCD_DEVFUNC_SETSIZE 0x05 /* ...setting the layer size */ |
alejandroRL | 0:dd702039127a | 427 | #define LCD_DEVFUNC_SETVIS 0x06 /* ...setting the visibility of a layer */ |
alejandroRL | 0:dd702039127a | 428 | #define LCD_DEVFUNC_24BPP 0x07 /* ...drawing 24bpp bitmaps */ |
alejandroRL | 0:dd702039127a | 429 | #define LCD_DEVFUNC_NEXT_PIXEL 0x08 /* ...drawing a bitmap pixel by pixel */ |
alejandroRL | 0:dd702039127a | 430 | #define LCD_DEVFUNC_SET_VRAM_ADDR 0x09 /* ...setting the VRAM address */ |
alejandroRL | 0:dd702039127a | 431 | #define LCD_DEVFUNC_SET_VSIZE 0x0A /* ...setting the VRAM size */ |
alejandroRL | 0:dd702039127a | 432 | #define LCD_DEVFUNC_SET_SIZE 0x0B /* ...setting the display size */ |
alejandroRL | 0:dd702039127a | 433 | #define LCD_DEVFUNC_INIT 0x0C /* ...initializing the display controller */ |
alejandroRL | 0:dd702039127a | 434 | #define LCD_DEVFUNC_CONTROLCACHE 0x0D /* ...controlling the cache */ |
alejandroRL | 0:dd702039127a | 435 | #define LCD_DEVFUNC_ON 0x0E /* ...switching the display on */ |
alejandroRL | 0:dd702039127a | 436 | #define LCD_DEVFUNC_OFF 0x0F /* ...switching the display off */ |
alejandroRL | 0:dd702039127a | 437 | #define LCD_DEVFUNC_SETLUTENTRY 0x10 /* ...setting a LUT entry */ |
alejandroRL | 0:dd702039127a | 438 | #define LCD_DEVFUNC_FILLPOLY 0x11 /* ...filling a polygon */ |
alejandroRL | 0:dd702039127a | 439 | #define LCD_DEVFUNC_FILLPOLYAA 0x12 /* ...filling an antialiased polygon */ |
alejandroRL | 0:dd702039127a | 440 | #define LCD_DEVFUNC_ALPHAMODE 0x13 /* ...setting the alpha blending mode */ |
alejandroRL | 0:dd702039127a | 441 | #define LCD_DEVFUNC_CHROMAMODE 0x14 /* ...setting the chroma blending mode */ |
alejandroRL | 0:dd702039127a | 442 | #define LCD_DEVFUNC_CHROMA 0x15 /* ...setting the chroma values */ |
alejandroRL | 0:dd702039127a | 443 | #define LCD_DEVFUNC_SETFUNC 0x16 /* ...setting a function pointer */ |
alejandroRL | 0:dd702039127a | 444 | #define LCD_DEVFUNC_REFRESH 0x17 /* ...refreshing the display */ |
alejandroRL | 0:dd702039127a | 445 | #define LCD_DEVFUNC_SETRECT 0x18 /* ...setting the drawing rectangle */ |
alejandroRL | 0:dd702039127a | 446 | /* Setting a function pointer for... */ |
alejandroRL | 0:dd702039127a | 447 | #define LCD_DEVFUNC_FILLRECT 0x19 /* ...filling a rectangular area */ |
alejandroRL | 0:dd702039127a | 448 | #define LCD_DEVFUNC_DRAWBMP_1BPP 0x20 /* ...drawing a 1bpp bitmap */ |
alejandroRL | 0:dd702039127a | 449 | #define LCD_DEVFUNC_COPYBUFFER 0x21 /* ...copying complete frame buffers */ |
alejandroRL | 0:dd702039127a | 450 | #define LCD_DEVFUNC_SHOWBUFFER 0x22 /* ...shows the given buffer */ |
alejandroRL | 0:dd702039127a | 451 | #define LCD_DEVFUNC_COPYRECT 0x23 /* ...filling a rectangular area */ |
alejandroRL | 0:dd702039127a | 452 | #define LCD_DEVFUNC_DRAWBMP_16BPP 0x24 /* ...drawing a 16bpp bitmap */ |
alejandroRL | 0:dd702039127a | 453 | #define LCD_DEVFUNC_DRAWBMP_8BPP 0x25 /* ...drawing a 8bpp bitmap */ |
alejandroRL | 0:dd702039127a | 454 | #define LCD_DEVFUNC_READPIXEL 0x26 /* ...reading a pixel index */ |
alejandroRL | 0:dd702039127a | 455 | #define LCD_DEVFUNC_READMPIXELS 0x27 /* ...reading multiple pixel indices */ |
alejandroRL | 0:dd702039127a | 456 | #define LCD_DEVFUNC_DRAWBMP_32BPP 0x28 /* ...drawing a 32bpp bitmap */ |
alejandroRL | 0:dd702039127a | 457 | |
alejandroRL | 0:dd702039127a | 458 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 459 | * |
alejandroRL | 0:dd702039127a | 460 | * Values for requesting function pointers (memory devices) |
alejandroRL | 0:dd702039127a | 461 | */ |
alejandroRL | 0:dd702039127a | 462 | /* Request of a function pointer for... */ |
alejandroRL | 0:dd702039127a | 463 | #define MEMDEV_DEVFUNC_WRITETOACTIVE 0x16 /* ...writing the memory device */ |
alejandroRL | 0:dd702039127a | 464 | |
alejandroRL | 0:dd702039127a | 465 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 466 | * |
alejandroRL | 0:dd702039127a | 467 | * Values for requesting data |
alejandroRL | 0:dd702039127a | 468 | */ |
alejandroRL | 0:dd702039127a | 469 | /* Request pointer to... */ |
alejandroRL | 0:dd702039127a | 470 | #define LCD_DEVDATA_MEMDEV 0x01 /* ...default memory device API */ |
alejandroRL | 0:dd702039127a | 471 | #define LCD_DEVDATA_PHYSPAL 0x02 /* ...physical palette */ |
alejandroRL | 0:dd702039127a | 472 | |
alejandroRL | 0:dd702039127a | 473 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 474 | * |
alejandroRL | 0:dd702039127a | 475 | * Structures for passing data to LCD_X_DisplayDriver() |
alejandroRL | 0:dd702039127a | 476 | */ |
alejandroRL | 0:dd702039127a | 477 | typedef struct { |
alejandroRL | 0:dd702039127a | 478 | void * pVRAM; |
alejandroRL | 0:dd702039127a | 479 | } LCD_X_SETVRAMADDR_INFO; |
alejandroRL | 0:dd702039127a | 480 | |
alejandroRL | 0:dd702039127a | 481 | typedef struct { |
alejandroRL | 0:dd702039127a | 482 | int xPos, yPos; |
alejandroRL | 0:dd702039127a | 483 | } LCD_X_SETORG_INFO; |
alejandroRL | 0:dd702039127a | 484 | |
alejandroRL | 0:dd702039127a | 485 | typedef struct { |
alejandroRL | 0:dd702039127a | 486 | LCD_COLOR Color; |
alejandroRL | 0:dd702039127a | 487 | U8 Pos; |
alejandroRL | 0:dd702039127a | 488 | } LCD_X_SETLUTENTRY_INFO; |
alejandroRL | 0:dd702039127a | 489 | |
alejandroRL | 0:dd702039127a | 490 | typedef struct { |
alejandroRL | 0:dd702039127a | 491 | int xSize, ySize; |
alejandroRL | 0:dd702039127a | 492 | } LCD_X_SETSIZE_INFO; |
alejandroRL | 0:dd702039127a | 493 | |
alejandroRL | 0:dd702039127a | 494 | typedef struct { |
alejandroRL | 0:dd702039127a | 495 | int xPos, yPos; |
alejandroRL | 0:dd702039127a | 496 | int xLen, yLen; |
alejandroRL | 0:dd702039127a | 497 | int BytesPerPixel; |
alejandroRL | 0:dd702039127a | 498 | U32 Off; |
alejandroRL | 0:dd702039127a | 499 | } LCD_X_SETPOS_INFO; |
alejandroRL | 0:dd702039127a | 500 | |
alejandroRL | 0:dd702039127a | 501 | typedef struct { |
alejandroRL | 0:dd702039127a | 502 | int Alpha; |
alejandroRL | 0:dd702039127a | 503 | } LCD_X_SETALPHA_INFO; |
alejandroRL | 0:dd702039127a | 504 | |
alejandroRL | 0:dd702039127a | 505 | typedef struct { |
alejandroRL | 0:dd702039127a | 506 | int OnOff; |
alejandroRL | 0:dd702039127a | 507 | } LCD_X_SETVIS_INFO; |
alejandroRL | 0:dd702039127a | 508 | |
alejandroRL | 0:dd702039127a | 509 | typedef struct { |
alejandroRL | 0:dd702039127a | 510 | int AlphaMode; |
alejandroRL | 0:dd702039127a | 511 | } LCD_X_SETALPHAMODE_INFO; |
alejandroRL | 0:dd702039127a | 512 | |
alejandroRL | 0:dd702039127a | 513 | typedef struct { |
alejandroRL | 0:dd702039127a | 514 | int ChromaMode; |
alejandroRL | 0:dd702039127a | 515 | } LCD_X_SETCHROMAMODE_INFO; |
alejandroRL | 0:dd702039127a | 516 | |
alejandroRL | 0:dd702039127a | 517 | typedef struct { |
alejandroRL | 0:dd702039127a | 518 | LCD_COLOR ChromaMin; |
alejandroRL | 0:dd702039127a | 519 | LCD_COLOR ChromaMax; |
alejandroRL | 0:dd702039127a | 520 | } LCD_X_SETCHROMA_INFO; |
alejandroRL | 0:dd702039127a | 521 | |
alejandroRL | 0:dd702039127a | 522 | typedef struct { |
alejandroRL | 0:dd702039127a | 523 | int Index; |
alejandroRL | 0:dd702039127a | 524 | } LCD_X_SHOWBUFFER_INFO; |
alejandroRL | 0:dd702039127a | 525 | |
alejandroRL | 0:dd702039127a | 526 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 527 | * |
alejandroRL | 0:dd702039127a | 528 | * Commands for LCD_X_DisplayDriver() |
alejandroRL | 0:dd702039127a | 529 | */ |
alejandroRL | 0:dd702039127a | 530 | #define LCD_X_INITCONTROLLER 0x01 /* Initializing the display controller */ |
alejandroRL | 0:dd702039127a | 531 | #define LCD_X_SETVRAMADDR 0x02 /* Setting the video RAM address */ |
alejandroRL | 0:dd702039127a | 532 | #define LCD_X_SETORG 0x03 /* Setting the origin within a layer */ |
alejandroRL | 0:dd702039127a | 533 | #define LCD_X_SETLUTENTRY 0x04 /* Setting an entry of the LUT */ |
alejandroRL | 0:dd702039127a | 534 | #define LCD_X_ON 0x05 /* Switching the display on */ |
alejandroRL | 0:dd702039127a | 535 | #define LCD_X_OFF 0x06 /* Switching the display off */ |
alejandroRL | 0:dd702039127a | 536 | #define LCD_X_SETSIZE 0x07 /* Setting the layer size */ |
alejandroRL | 0:dd702039127a | 537 | #define LCD_X_SETPOS 0x08 /* Setting the layer position */ |
alejandroRL | 0:dd702039127a | 538 | #define LCD_X_SETVIS 0x09 /* Setting the visibility of a layer */ |
alejandroRL | 0:dd702039127a | 539 | #define LCD_X_SETALPHA 0x0A /* Setting the alpha value of the layer */ |
alejandroRL | 0:dd702039127a | 540 | #define LCD_X_SETALPHAMODE 0x0B /* Setting the alpha blending mode */ |
alejandroRL | 0:dd702039127a | 541 | #define LCD_X_SETCHROMAMODE 0x0C /* Setting the chroma blending mode */ |
alejandroRL | 0:dd702039127a | 542 | #define LCD_X_SETCHROMA 0x0D /* Setting the chroma values */ |
alejandroRL | 0:dd702039127a | 543 | #define LCD_X_SHOWBUFFER 0x0E /* Switching to the given buffer */ |
alejandroRL | 0:dd702039127a | 544 | |
alejandroRL | 0:dd702039127a | 545 | int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData); |
alejandroRL | 0:dd702039127a | 546 | void LCD_X_Config(void); |
alejandroRL | 0:dd702039127a | 547 | |
alejandroRL | 0:dd702039127a | 548 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 549 | * |
alejandroRL | 0:dd702039127a | 550 | * Set layer properties |
alejandroRL | 0:dd702039127a | 551 | */ |
alejandroRL | 0:dd702039127a | 552 | int LCD_SetAlphaEx (int LayerIndex, int Alpha); |
alejandroRL | 0:dd702039127a | 553 | int LCD_SetPosEx (int LayerIndex, int xPos, int yPos); |
alejandroRL | 0:dd702039127a | 554 | int LCD_SetSizeEx (int LayerIndex, int xSize, int ySize); |
alejandroRL | 0:dd702039127a | 555 | int LCD_SetVisEx (int LayerIndex, int OnOff); |
alejandroRL | 0:dd702039127a | 556 | int LCD_SetVRAMAddrEx (int LayerIndex, void * pVRAM); |
alejandroRL | 0:dd702039127a | 557 | int LCD_SetVSizeEx (int LayerIndex, int xSize, int ySize); |
alejandroRL | 0:dd702039127a | 558 | int LCD_SetAlphaModeEx (int LayerIndex, int AlphaMode); |
alejandroRL | 0:dd702039127a | 559 | int LCD_SetChromaModeEx(int LayerIndex, int ChromaMode); |
alejandroRL | 0:dd702039127a | 560 | int LCD_SetChromaEx (int LayerIndex, LCD_COLOR ChromaMin, LCD_COLOR ChromaMax); |
alejandroRL | 0:dd702039127a | 561 | |
alejandroRL | 0:dd702039127a | 562 | int LCD_SetAlpha (int Alpha); |
alejandroRL | 0:dd702039127a | 563 | int LCD_SetVRAMAddr (void * pVRAM); |
alejandroRL | 0:dd702039127a | 564 | int LCD_SetVSize (int xSize, int ySize); |
alejandroRL | 0:dd702039127a | 565 | int LCD_SetSize (int xSize, int ySize); |
alejandroRL | 0:dd702039127a | 566 | int LCD_SetVis (int OnOff); |
alejandroRL | 0:dd702039127a | 567 | int LCD_SetPos (int xPos, int yPos); |
alejandroRL | 0:dd702039127a | 568 | int LCD_SetAlphaMode (int AlphaMode); |
alejandroRL | 0:dd702039127a | 569 | int LCD_SetChromaMode(int ChromaMode); |
alejandroRL | 0:dd702039127a | 570 | int LCD_SetChroma (LCD_COLOR ChromaMin, LCD_COLOR ChromaMax); |
alejandroRL | 0:dd702039127a | 571 | int LCD_SetLUTEntry (U8 Pos, LCD_COLOR Color); |
alejandroRL | 0:dd702039127a | 572 | int LCD_SetDevFunc (int LayerIndex, int IdFunc, void (* pDriverFunc)(void)); |
alejandroRL | 0:dd702039127a | 573 | |
alejandroRL | 0:dd702039127a | 574 | void LCD_SetOrg(int xOrg, int yOrg); |
alejandroRL | 0:dd702039127a | 575 | |
alejandroRL | 0:dd702039127a | 576 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 577 | * |
alejandroRL | 0:dd702039127a | 578 | * Get layer properties |
alejandroRL | 0:dd702039127a | 579 | */ |
alejandroRL | 0:dd702039127a | 580 | int LCD_GetPosEx(int LayerIndex, int * pxPos, int * pyPos); |
alejandroRL | 0:dd702039127a | 581 | |
alejandroRL | 0:dd702039127a | 582 | int LCD_GetPos (int * pxPos, int * pyPos); |
alejandroRL | 0:dd702039127a | 583 | |
alejandroRL | 0:dd702039127a | 584 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 585 | * |
alejandroRL | 0:dd702039127a | 586 | * Display refresh (optional) |
alejandroRL | 0:dd702039127a | 587 | */ |
alejandroRL | 0:dd702039127a | 588 | int LCD_Refresh (void); |
alejandroRL | 0:dd702039127a | 589 | int LCD_RefreshEx(int LayerIndex); |
alejandroRL | 0:dd702039127a | 590 | |
alejandroRL | 0:dd702039127a | 591 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 592 | * |
alejandroRL | 0:dd702039127a | 593 | * NEXT_PIXEL API support |
alejandroRL | 0:dd702039127a | 594 | */ |
alejandroRL | 0:dd702039127a | 595 | typedef struct { |
alejandroRL | 0:dd702039127a | 596 | int (* pfStart) (int x0, int y0, int x1, int y1); |
alejandroRL | 0:dd702039127a | 597 | void (* pfSetPixel)(LCD_PIXELINDEX PixelIndex); |
alejandroRL | 0:dd702039127a | 598 | void (* pfNextLine)(void); |
alejandroRL | 0:dd702039127a | 599 | void (* pfEnd) (void); |
alejandroRL | 0:dd702039127a | 600 | } LCD_API_NEXT_PIXEL; |
alejandroRL | 0:dd702039127a | 601 | |
alejandroRL | 0:dd702039127a | 602 | LCD_API_NEXT_PIXEL * LCD_GetNextPixelAPI(void); |
alejandroRL | 0:dd702039127a | 603 | |
alejandroRL | 0:dd702039127a | 604 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 605 | * |
alejandroRL | 0:dd702039127a | 606 | * LCD_CLIP function table |
alejandroRL | 0:dd702039127a | 607 | */ |
alejandroRL | 0:dd702039127a | 608 | typedef void tLCD_HL_DrawHLine (int x0, int y0, int x1); |
alejandroRL | 0:dd702039127a | 609 | typedef void tLCD_HL_DrawPixel (int x0, int y0); |
alejandroRL | 0:dd702039127a | 610 | |
alejandroRL | 0:dd702039127a | 611 | typedef struct { |
alejandroRL | 0:dd702039127a | 612 | tLCD_HL_DrawHLine * pfDrawHLine; |
alejandroRL | 0:dd702039127a | 613 | tLCD_HL_DrawPixel * pfDrawPixel; |
alejandroRL | 0:dd702039127a | 614 | } tLCD_HL_APIList; |
alejandroRL | 0:dd702039127a | 615 | |
alejandroRL | 0:dd702039127a | 616 | void LCD_DrawHLine(int x0, int y0, int x1); |
alejandroRL | 0:dd702039127a | 617 | void LCD_DrawPixel(int x0, int y0); |
alejandroRL | 0:dd702039127a | 618 | void LCD_DrawVLine(int x, int y0, int y1); |
alejandroRL | 0:dd702039127a | 619 | |
alejandroRL | 0:dd702039127a | 620 | |
alejandroRL | 0:dd702039127a | 621 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 622 | * |
alejandroRL | 0:dd702039127a | 623 | * Declarations for LCD_ |
alejandroRL | 0:dd702039127a | 624 | */ |
alejandroRL | 0:dd702039127a | 625 | void LCD_SetClipRectEx(const LCD_RECT * pRect); |
alejandroRL | 0:dd702039127a | 626 | void LCD_SetClipRectMax(void); |
alejandroRL | 0:dd702039127a | 627 | |
alejandroRL | 0:dd702039127a | 628 | /* Get device capabilities (0 if not supported) */ |
alejandroRL | 0:dd702039127a | 629 | I32 LCD_GetDevCap (int Index); |
alejandroRL | 0:dd702039127a | 630 | I32 LCD_GetDevCapEx(int LayerIndex, int Index); |
alejandroRL | 0:dd702039127a | 631 | |
alejandroRL | 0:dd702039127a | 632 | /* Initialize LCD using config-parameters */ |
alejandroRL | 0:dd702039127a | 633 | int LCD_Init(void); |
alejandroRL | 0:dd702039127a | 634 | int LCD_InitColors(void); |
alejandroRL | 0:dd702039127a | 635 | |
alejandroRL | 0:dd702039127a | 636 | void LCD_SetBkColor (LCD_COLOR Color); /* Set background color */ |
alejandroRL | 0:dd702039127a | 637 | void LCD_SetColor (LCD_COLOR Color); /* Set foreground color */ |
alejandroRL | 0:dd702039127a | 638 | void LCD_SetPixelIndex(int x, int y, int ColorIndex); |
alejandroRL | 0:dd702039127a | 639 | |
alejandroRL | 0:dd702039127a | 640 | /* Palette routines (Not available on all drivers) */ |
alejandroRL | 0:dd702039127a | 641 | void LCD_InitLUT(void); |
alejandroRL | 0:dd702039127a | 642 | int LCD_SetLUTEntryEx(int LayerIndex, U8 Pos, LCD_COLOR Color); |
alejandroRL | 0:dd702039127a | 643 | void LCD_SetLUTEx(int LayerIndex, const LCD_PHYSPALETTE * pPalette); |
alejandroRL | 0:dd702039127a | 644 | void LCD_SetLUT (const LCD_PHYSPALETTE * pPalette); |
alejandroRL | 0:dd702039127a | 645 | |
alejandroRL | 0:dd702039127a | 646 | LCD_DRAWMODE LCD_SetDrawMode (LCD_DRAWMODE dm); |
alejandroRL | 0:dd702039127a | 647 | void LCD_SetColorIndex(unsigned PixelIndex); |
alejandroRL | 0:dd702039127a | 648 | void LCD_SetBkColorIndex(unsigned PixelIndex); |
alejandroRL | 0:dd702039127a | 649 | void LCD_FillRect(int x0, int y0, int x1, int y1); |
alejandroRL | 0:dd702039127a | 650 | typedef void tLCD_SetPixelAA(int x, int y, U8 Intens); |
alejandroRL | 0:dd702039127a | 651 | |
alejandroRL | 0:dd702039127a | 652 | void LCD_SetPixelAA4_Trans (int x, int y, U8 Intens); |
alejandroRL | 0:dd702039127a | 653 | void LCD_SetPixelAA4_NoTrans(int x, int y, U8 Intens); |
alejandroRL | 0:dd702039127a | 654 | |
alejandroRL | 0:dd702039127a | 655 | void LCD_SetPixelAA8_Trans (int x, int y, U8 Intens); |
alejandroRL | 0:dd702039127a | 656 | void LCD_SetPixelAA8_NoTrans(int x, int y, U8 Intens); |
alejandroRL | 0:dd702039127a | 657 | |
alejandroRL | 0:dd702039127a | 658 | void LCD_AA_EnableGamma(int OnOff); |
alejandroRL | 0:dd702039127a | 659 | void LCD_AA_SetGamma (U8 * pGamma); |
alejandroRL | 0:dd702039127a | 660 | void LCD_AA_GetGamma (U8 * pGamma); |
alejandroRL | 0:dd702039127a | 661 | |
alejandroRL | 0:dd702039127a | 662 | LCD_COLOR LCD_AA_MixColors16 (LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens); |
alejandroRL | 0:dd702039127a | 663 | LCD_COLOR LCD_AA_MixColors256(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens); |
alejandroRL | 0:dd702039127a | 664 | LCD_COLOR LCD_MixColors256 (LCD_COLOR Color, LCD_COLOR BkColor, unsigned Intens); |
alejandroRL | 0:dd702039127a | 665 | LCD_COLOR LCD_GetPixelColor(int x, int y); /* Get RGB color of pixel */ |
alejandroRL | 0:dd702039127a | 666 | unsigned int LCD_GetPixelIndex(int x, int y); |
alejandroRL | 0:dd702039127a | 667 | int LCD_GetBkColorIndex (void); |
alejandroRL | 0:dd702039127a | 668 | int LCD_GetColorIndex (void); |
alejandroRL | 0:dd702039127a | 669 | #if (GUI_USE_ARGB) |
alejandroRL | 0:dd702039127a | 670 | U32 LCD_AA_SetOrMask(U32 OrMask); |
alejandroRL | 0:dd702039127a | 671 | #else |
alejandroRL | 0:dd702039127a | 672 | U32 LCD_AA_SetAndMask(U32 AndMask); |
alejandroRL | 0:dd702039127a | 673 | #endif |
alejandroRL | 0:dd702039127a | 674 | |
alejandroRL | 0:dd702039127a | 675 | /* Configuration */ |
alejandroRL | 0:dd702039127a | 676 | int LCD_SetMaxNumColors(unsigned MaxNumColors); |
alejandroRL | 0:dd702039127a | 677 | int LCD_GetMaxNumColors(void); |
alejandroRL | 0:dd702039127a | 678 | void LCD__SetPaletteConversionHook(void (* pfPaletteConversionHook)(const LCD_LOGPALETTE * pLogPal)); |
alejandroRL | 0:dd702039127a | 679 | |
alejandroRL | 0:dd702039127a | 680 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 681 | * |
alejandroRL | 0:dd702039127a | 682 | * Optional support for rotation |
alejandroRL | 0:dd702039127a | 683 | */ |
alejandroRL | 0:dd702039127a | 684 | #if GUI_SUPPORT_ROTATION |
alejandroRL | 0:dd702039127a | 685 | |
alejandroRL | 0:dd702039127a | 686 | typedef void tLCD_DrawBitmap(int x0, int y0, int xsize, int ysize, |
alejandroRL | 0:dd702039127a | 687 | int xMul, int yMul, int BitsPerPixel, int BytesPerLine, |
alejandroRL | 0:dd702039127a | 688 | const U8 * pPixel, const void * pTrans); |
alejandroRL | 0:dd702039127a | 689 | typedef void tRect2TextRect (LCD_RECT * pRect); |
alejandroRL | 0:dd702039127a | 690 | |
alejandroRL | 0:dd702039127a | 691 | struct tLCD_APIList_struct { |
alejandroRL | 0:dd702039127a | 692 | tLCD_DrawBitmap * pfDrawBitmap; |
alejandroRL | 0:dd702039127a | 693 | tRect2TextRect * pfRect2TextRect; |
alejandroRL | 0:dd702039127a | 694 | tRect2TextRect * pfTransformRect; |
alejandroRL | 0:dd702039127a | 695 | }; |
alejandroRL | 0:dd702039127a | 696 | |
alejandroRL | 0:dd702039127a | 697 | typedef struct tLCD_APIList_struct tLCD_APIList; |
alejandroRL | 0:dd702039127a | 698 | |
alejandroRL | 0:dd702039127a | 699 | extern tLCD_APIList LCD_APIListCCW; |
alejandroRL | 0:dd702039127a | 700 | extern tLCD_APIList LCD_APIListCW; |
alejandroRL | 0:dd702039127a | 701 | extern tLCD_APIList LCD_APIList180; |
alejandroRL | 0:dd702039127a | 702 | |
alejandroRL | 0:dd702039127a | 703 | #define GUI_ROTATION tLCD_APIList |
alejandroRL | 0:dd702039127a | 704 | #define GUI_ROTATE_CCW &LCD_APIListCCW |
alejandroRL | 0:dd702039127a | 705 | #define GUI_ROTATE_CW &LCD_APIListCW |
alejandroRL | 0:dd702039127a | 706 | #define GUI_ROTATE_180 &LCD_APIList180 |
alejandroRL | 0:dd702039127a | 707 | #define GUI_ROTATE_0 0 |
alejandroRL | 0:dd702039127a | 708 | |
alejandroRL | 0:dd702039127a | 709 | tLCD_SetPixelAA * LCD__GetPfSetPixel(int BitsPerPixel); |
alejandroRL | 0:dd702039127a | 710 | |
alejandroRL | 0:dd702039127a | 711 | #endif |
alejandroRL | 0:dd702039127a | 712 | |
alejandroRL | 0:dd702039127a | 713 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 714 | * |
alejandroRL | 0:dd702039127a | 715 | * Physical color access, internally used only |
alejandroRL | 0:dd702039127a | 716 | */ |
alejandroRL | 0:dd702039127a | 717 | void LCD__SetPhysColor(U8 Pos, LCD_COLOR Color); |
alejandroRL | 0:dd702039127a | 718 | |
alejandroRL | 0:dd702039127a | 719 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 720 | * |
alejandroRL | 0:dd702039127a | 721 | * Cache control |
alejandroRL | 0:dd702039127a | 722 | */ |
alejandroRL | 0:dd702039127a | 723 | #define LCD_CC_UNLOCK (0) /* Default mode: Cache is transparent */ |
alejandroRL | 0:dd702039127a | 724 | #define LCD_CC_LOCK (1) /* Cache is locked, no write operations */ |
alejandroRL | 0:dd702039127a | 725 | #define LCD_CC_FLUSH (2) /* Flush cache, do not change mode */ |
alejandroRL | 0:dd702039127a | 726 | |
alejandroRL | 0:dd702039127a | 727 | int LCD_ControlCache (int Cmd); |
alejandroRL | 0:dd702039127a | 728 | int LCD_ControlCacheEx(int LayerIndex, int Cmd); |
alejandroRL | 0:dd702039127a | 729 | |
alejandroRL | 0:dd702039127a | 730 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 731 | * |
alejandroRL | 0:dd702039127a | 732 | * Color conversion |
alejandroRL | 0:dd702039127a | 733 | */ |
alejandroRL | 0:dd702039127a | 734 | LCD_PIXELINDEX LCD_Color2Index (LCD_COLOR Color); |
alejandroRL | 0:dd702039127a | 735 | LCD_COLOR LCD_Index2Color (int Index); |
alejandroRL | 0:dd702039127a | 736 | LCD_COLOR LCD_Index2ColorEx (int i, unsigned LayerIndex); |
alejandroRL | 0:dd702039127a | 737 | |
alejandroRL | 0:dd702039127a | 738 | /********************************************************************* |
alejandroRL | 0:dd702039127a | 739 | * |
alejandroRL | 0:dd702039127a | 740 | * LCD_X_... |
alejandroRL | 0:dd702039127a | 741 | */ |
alejandroRL | 0:dd702039127a | 742 | unsigned char LCD_X_Read00(void); |
alejandroRL | 0:dd702039127a | 743 | unsigned char LCD_X_Read01(void); |
alejandroRL | 0:dd702039127a | 744 | void LCD_X_Write00 (unsigned char c); |
alejandroRL | 0:dd702039127a | 745 | void LCD_X_Write01 (unsigned char c); |
alejandroRL | 0:dd702039127a | 746 | void LCD_X_WriteM01(unsigned char * pData, int NumBytes); |
alejandroRL | 0:dd702039127a | 747 | |
alejandroRL | 0:dd702039127a | 748 | #if defined(__cplusplus) |
alejandroRL | 0:dd702039127a | 749 | } |
alejandroRL | 0:dd702039127a | 750 | #endif |
alejandroRL | 0:dd702039127a | 751 | |
alejandroRL | 0:dd702039127a | 752 | #endif /* LCD_H */ |
alejandroRL | 0:dd702039127a | 753 | |
alejandroRL | 0:dd702039127a | 754 | /*************************** End of file ****************************/ |