STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
GUI_Private.h
Go to the documentation of this file.
1 /*********************************************************************
2 * SEGGER Microcontroller GmbH & Co. KG *
3 * Solutions for real time microcontroller applications *
4 **********************************************************************
5 * *
6 * (c) 1996 - 2015 SEGGER Microcontroller GmbH & Co. KG *
7 * *
8 * Internet: www.segger.com Support: support@segger.com *
9 * *
10 **********************************************************************
11 
12 ** emWin V5.28 - Graphical user interface for embedded applications **
13 All Intellectual Property rights in the Software belongs to SEGGER.
14 emWin is protected by international copyright laws. Knowledge of the
15 source code may not be used to write a similar product. This file may
16 only be used in accordance with the following terms:
17 
18 The software has been licensed to STMicroelectronics International
19 N.V. a Dutch company with a Swiss branch and its headquarters in Plan-
20 les-Ouates, Geneva, 39 Chemin du Champ des Filles, Switzerland for the
21 purposes of creating libraries for ARM Cortex-M-based 32-bit microcon_
22 troller products commercialized by Licensee only, sublicensed and dis_
23 tributed under the terms and conditions of the End User License Agree_
24 ment supplied by STMicroelectronics International N.V.
25 Full source code is available at: www.segger.com
26 
27 We appreciate your understanding and fairness.
28 ----------------------------------------------------------------------
29 File : GUI_Private.h
30 Purpose : GUI internal declarations
31 ---------------------------END-OF-HEADER------------------------------
32 */
33 
34 #ifndef GUI_PRIVATE_H
35 #define GUI_PRIVATE_H
36 
37 #include "GUI.h"
38 #include "LCD_Protected.h"
39 #include "GUI_Debug.h"
40 #if GUI_WINSUPPORT
41  #include "WM_GUI.h"
42 #endif
43 
44 #if defined(__cplusplus)
45 extern "C" { /* Make sure we have C-declarations in C++ programs */
46 #endif
47 
48 /*********************************************************************
49 *
50 * Defaults for config switches
51 *
52 **********************************************************************
53 
54  The config switches below do not affect the interface in GUI.h and
55  are therefor not required to be in GUI.h.
56 */
57 
58 /* Short address area.
59  For most compilers, this is "near" or "__near"
60  We do not use this except for some CPUs which we know to always have some
61  near memory, because the GUI_Context and some other data will be declared
62  to be in this short address (near) memory area as it has a major effect
63  on performance.
64  Please define in GUIConf.h (if you want to use it)
65 */
66 #ifndef GUI_SADDR
67  #define GUI_SADDR
68 #endif
69 
70 #ifndef GUI_DEFAULT_FONT
71  #define GUI_DEFAULT_FONT &GUI_Font6x8
72 #endif
73 
74 #ifndef GUI_DEFAULT_CURSOR
75  #define GUI_DEFAULT_CURSOR &GUI_CursorArrowM
76 #endif
77 
78 #ifndef GUI_DEFAULT_BKCOLOR
79  #define GUI_DEFAULT_BKCOLOR GUI_BLACK
80 #endif
81 
82 #ifndef GUI_DEFAULT_COLOR
83  #define GUI_DEFAULT_COLOR GUI_WHITE
84 #endif
85 
86 /*********************************************************************
87 *
88 * Angles
89 *
90 **********************************************************************
91 */
92 #define GUI_45DEG 512
93 #define GUI_90DEG (2 * GUI_45DEG)
94 #define GUI_180DEG (4 * GUI_45DEG)
95 #define GUI_360DEG (8 * GUI_45DEG)
96 
97 
98 /*********************************************************************
99 *
100 * Locking checks
101 *
102 **********************************************************************
103 */
104 #if defined (WIN32) && defined (_DEBUG) && GUI_OS
105  #define GUI_ASSERT_LOCK() GUITASK_AssertLock()
106  #define GUI_ASSERT_NO_LOCK() GUITASK_AssertNoLock()
107  void GUITASK_AssertLock(void);
108  void GUITASK_AssertNoLock(void);
109 #else
110  #define GUI_ASSERT_LOCK()
111  #define GUI_ASSERT_NO_LOCK()
112 #endif
113 
114 /*********************************************************************
115 *
116 * Division tables
117 *
118 **********************************************************************
119 */
120 extern const U8 GUI__aConvert_15_255[(1 << 4)];
121 extern const U8 GUI__aConvert_31_255[(1 << 5)];
122 extern const U8 GUI__aConvert_63_255[(1 << 6)];
123 extern const U8 GUI__aConvert_255_15[(1 << 8)];
124 extern const U8 GUI__aConvert_255_31[(1 << 8)];
125 extern const U8 GUI__aConvert_255_63[(1 << 8)];
126 
127 /*********************************************************************
128 *
129 * Usage internals
130 *
131 **********************************************************************
132 */
135 typedef struct GUI_Usage GUI_USAGE;
136 #define GUI_USAGE_h GUI_USAGE_Handle
137 
138 
139 
141 typedef void tUSAGE_AddPixel (GUI_USAGE * p, int x, int y);
142 typedef void tUSAGE_AddHLine (GUI_USAGE * p, int x0, int y0, int len);
143 typedef void tUSAGE_Clear (GUI_USAGE * p);
144 typedef void tUSAGE_Delete (GUI_USAGE_h h);
145 typedef int tUSAGE_GetNextDirty (GUI_USAGE * p, int * pxOff, int yOff);
146 #define GUI_USAGE_LOCK_H(h) ((GUI_USAGE *)GUI_LOCK_H(h))
147 
148 
149 void GUI_USAGE_DecUseCnt(GUI_USAGE_Handle hUsage);
150 
151 GUI_USAGE_Handle GUI_USAGE_BM_Create(int x0, int y0, int xsize, int ysize, int Flags);
152 void GUI_USAGE_Select(GUI_USAGE_Handle hUsage);
153 void GUI_USAGE_AddRect(GUI_USAGE * pUsage, int x0, int y0, int xSize, int ySize);
154 #define GUI_USAGE_AddPixel(p, x,y) p->pAPI->pfAddPixel(p,x,y)
155 #define GUI_USAGE_AddHLine(p,x,y,len) p->pAPI->pfAddHLine(p,x,y,len)
156 #define GUI_USAGE_Clear(p) p->pAPI->pfClear(p)
157 #define GUI_USAGE_Delete(p) p->pAPI->pfDelete(p)
158 #define GUI_USAGE_GetNextDirty(p,pxOff, yOff) p->pAPI->pfGetNextDirty(p,pxOff, yOff)
159 
167 } ;
168 
169 struct GUI_Usage {
170  I16P x0, y0, XSize, YSize;
173 };
174 
175 
176 /*********************************************************************
177 *
178 * GUI_MEMDEV
179 *
180 **********************************************************************
181 */
182 #if GUI_SUPPORT_MEMDEV
183 
184 typedef struct {
185  GUI_DEVICE * pDevice;
186  I16P x0, y0, XSize, YSize;
187  unsigned BytesPerLine;
188  unsigned BitsPerPixel;
189  GUI_HMEM hUsage;
190 } GUI_MEMDEV;
191 
192 #define GUI_MEMDEV_LOCK_H(h) ((GUI_MEMDEV *)GUI_LOCK_H(h))
193 
194 void GUI_MEMDEV__CopyFromLCD (GUI_MEMDEV_Handle hMem);
195 void GUI_MEMDEV__GetRect (GUI_RECT * pRect);
196 unsigned GUI_MEMDEV__Color2Index (LCD_COLOR Color);
197 LCD_COLOR GUI_MEMDEV__Index2Color (int Index);
198 unsigned int GUI_MEMDEV__GetIndexMask(void);
199 void GUI_MEMDEV__SetAlphaCallback(unsigned(* pcbSetAlpha)(U8));
200 
201 GUI_MEMDEV_Handle GUI_MEMDEV__CreateFixed(int x0, int y0, int xSize, int ySize, int Flags,
202  const GUI_DEVICE_API * pDeviceAPI,
203  const LCD_API_COLOR_CONV * pColorConvAPI);
204 
205 void GUI_MEMDEV__DrawSizedAt (GUI_MEMDEV_Handle hMem, int xPos, int yPos, int xSize, int ySize);
206 GUI_MEMDEV_Handle GUI_MEMDEV__GetEmptyCopy32 (GUI_MEMDEV_Handle hMem, int * pxSize, int * pySize, int * pxPos, int * pyPos);
207 void GUI_MEMDEV__ReadLine (int x0, int y, int x1, LCD_PIXELINDEX * pBuffer);
208 void GUI_MEMDEV__WriteToActiveAlpha (GUI_MEMDEV_Handle hMem,int x, int y);
209 void GUI_MEMDEV__WriteToActiveAt (GUI_MEMDEV_Handle hMem,int x, int y);
210 void GUI_MEMDEV__WriteToActiveOpaque(GUI_MEMDEV_Handle hMem,int x, int y);
211 void * GUI_MEMDEV__XY2PTR (int x,int y);
212 void * GUI_MEMDEV__XY2PTREx (GUI_MEMDEV * pDev, int x,int y);
213 void GUI_MEMDEV__BlendColor32 (GUI_MEMDEV_Handle hMem, U32 BlendColor, U8 BlendIntens);
214 
215 unsigned GUI__AlphaSuppressMixing(int OnOff);
216 
217 #define GUI_POS_AUTO -4095 /* Position value for auto-pos */
218 
219 #endif
220 
221 
222 /*********************************************************************
223 *
224 * LCD_HL_ level defines
225 *
226 **********************************************************************
227 */
228 #define LCD_HL_DrawHLine GUI_pContext->pLCD_HL->pfDrawHLine
229 #define LCD_HL_DrawPixel GUI_pContext->pLCD_HL->pfDrawPixel
230 
231 
232 /*********************************************************************
233 *
234 * Helper functions
235 *
236 **********************************************************************
237 */
238 #define GUI_ZEROINIT(Obj) GUI_MEMSET(Obj, 0, sizeof(Obj))
239 int GUI_cos(int angle);
240 int GUI_sin(int angle);
241 extern const U32 GUI_Pow10[10];
242 
243 /* Multi-touch */
244 void GUI_MTOUCH__ManagePID(int OnOff);
245 
246 /* Anti-aliased drawing */
247 int GUI_AA_Init (int x0, int x1);
248 int GUI_AA_Init_HiRes (int x0, int x1);
249 void GUI_AA_Exit (void);
250 I16 GUI_AA_HiRes2Pixel(int HiRes);
251 
252 void GL_FillCircleAA_HiRes (int x0, int y0, int r);
253 void GL_FillEllipseAA_HiRes(int x0, int y0, int rx, int ry);
254 
255 void GUI_AA__DrawCharAA2(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 * pData);
256 void GUI_AA__DrawCharAA4(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 * pData);
257 void GUI_AA__DrawCharAA8(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 * pData);
258 
259 /* Alpha blending helper functions */
260 #define GUI_ALPHABLENDING_DONE (1 << 0)
261 
262 int GUI__GetAlphaBuffer (U32 ** ppCurrent, U32 ** ppConvert, U32 ** ppData, int * pVXSizeMax);
263 int GUI__AllocAlphaBuffer (int AllocDataBuffer);
264 U32 * GUI__DoAlphaBlending (int x, int y, U32 * pData, int xSize, tLCDDEV_Index2Color * pfIndex2Color_DEV, int * pDone);
265 unsigned GUI__SetAlphaBufferSize(int xSize);
266 
267 /* System independent font routines */
268 int GUI_SIF__GetCharDistX (U16P c, int * pSizeX);
269 void GUI_SIF__GetFontInfo (const GUI_FONT * pFont, GUI_FONTINFO * pfi);
270 char GUI_SIF__IsInFont (const GUI_FONT * pFont, U16 c);
271 const U8 * GUI_SIF__GetpCharInfo (const GUI_FONT * pFont, U16P c, unsigned SizeOfCharInfo);
272 int GUI_SIF__GetNumCharAreas (const GUI_FONT * pFont);
273 int GUI_SIF__GetCharDistX_ExtFrm(U16P c, int * pSizeX);
274 void GUI_SIF__GetFontInfo_ExtFrm (const GUI_FONT * pFont, GUI_FONTINFO * pfi);
275 char GUI_SIF__IsInFont_ExtFrm (const GUI_FONT * pFont, U16 c);
277 void GUI_SIF__ClearLine_ExtFrm (const char * s, int Len);
278 
279 /* External binary font routines */
280 int GUI_XBF__GetOff (const GUI_XBF_DATA * pXBF_Data, unsigned c, U32 * pOff);
281 int GUI_XBF__GetOffAndSize(const GUI_XBF_DATA * pXBF_Data, unsigned c, U32 * pOff, U16 * pSize);
282 int GUI_XBF__GetCharDistX (U16P c, int * pSizeX);
283 void GUI_XBF__GetFontInfo (const GUI_FONT * pFont, GUI_FONTINFO * pInfo);
284 char GUI_XBF__IsInFont (const GUI_FONT * pFont, U16 c);
286 void GUI_XBF__ClearLine (const char * s, int Len);
287 
288 /* Conversion routines */
289 void GUI_AddHex (U32 v, U8 Len, char ** ps);
290 void GUI_AddBin (U32 v, U8 Len, char ** ps);
291 void GUI_AddDecMin (I32 v, char ** ps);
292 void GUI_AddDec (I32 v, U8 Len, char ** ps);
293 void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char ** ps);
294 long GUI_AddSign (long v, char ** ps);
295 int GUI_Long2Len (I32 v);
296 
297 #define GUI_UC__GetCharSize(sText) GUI_pUC_API->pfGetCharSize(sText)
298 #define GUI_UC__GetCharCode(sText) GUI_pUC_API->pfGetCharCode(sText)
299 
300 int GUI_UC__CalcSizeOfChar (U16 Char);
301 U16 GUI_UC__GetCharCodeInc (const char ** ps);
302 int GUI_UC__NumChars2NumBytes(const char * s, int NumChars);
303 int GUI_UC__NumBytes2NumChars(const char * s, int NumBytes);
304 
305 int GUI__GetLineNumChars (const char * s, int MaxNumChars);
306 int GUI__GetNumChars (const char * s);
307 int GUI__GetOverlap (U16 Char);
308 int GUI__GetLineDistX (const char * s, int Len);
309 int GUI__GetFontSizeY (void);
310 int GUI__HandleEOLine (const char ** ps);
311 void GUI__DispLine (const char * s, int Len, const GUI_RECT * pr);
312 void GUI__AddSpaceHex (U32 v, U8 Len, char ** ps);
313 void GUI__CalcTextRect (const char * pText, const GUI_RECT * pTextRectIn, GUI_RECT * pTextRectOut, int TextAlign);
314 
315 void GUI__ClearTextBackground(int xDist, int yDist);
316 
317 int GUI__WrapGetNumCharsDisp (const char * pText, int xSize, GUI_WRAPMODE WrapMode);
318 int GUI__WrapGetNumCharsToNextLine (const char * pText, int xSize, GUI_WRAPMODE WrapMode);
319 int GUI__WrapGetNumBytesToNextLine (const char * pText, int xSize, GUI_WRAPMODE WrapMode);
320 void GUI__memset (U8 * p, U8 Fill, int NumBytes);
321 void GUI__memset16 (U16 * p, U16 Fill, int NumWords);
322 int GUI__strlen (const char * s);
323 int GUI__strcmp (const char * s0, const char * s1);
324 int GUI__strcmp_hp (GUI_HMEM hs0, const char * s1);
325 
326 /* Get cursor position */
327 int GUI__GetCursorPosX (const char * s, int Index, int MaxNumChars);
328 int GUI__GetCursorPosChar (const char * s, int x, int NumCharsToNextLine);
329 U16 GUI__GetCursorCharacter(const char * s, int Index, int MaxNumChars, int * pIsRTL);
330 
331 /* Arabic support (tbd) */
332 U16 GUI__GetPresentationForm (U16 Char, U16 Next, U16 Prev, int * pIgnoreNext, const char * s);
334 
335 /* BiDi support */
336 int GUI__BIDI_Log2Vis (const char * s, int NumChars, char * pBuffer, int BufferSize);
337 int GUI__BIDI_GetCursorPosX (const char * s, int NumChars, int Index);
338 int GUI__BIDI_GetCursorPosChar (const char * s, int NumChars, int x);
339 U16 GUI__BIDI_GetLogChar (const char * s, int NumChars, int Index);
340 int GUI__BIDI_GetCharDir (const char * s, int NumChars, int Index);
341 int GUI__BIDI_IsNSM (U16 Char);
342 U16 GUI__BIDI_GetCursorCharacter(const char * s, int Index, int MaxNumChars, int * pIsRTL);
343 int GUI__BIDI_GetWordWrap (const char * s, int xSize, int * pxDist);
344 int GUI__BIDI_GetCharWrap (const char * s, int xSize);
345 
346 const char * GUI__BIDI_Log2VisBuffered(const char * s, int * pMaxNumChars);
347 
348 extern int GUI__BIDI_Enabled;
349 
350 extern int (* _pfGUI__BIDI_Log2Vis )(const char * s, int NumChars, char * pBuffer, int BufferSize);
351 extern int (* _pfGUI__BIDI_GetCursorPosX )(const char * s, int NumChars, int Index);
352 extern int (* _pfGUI__BIDI_GetCursorPosChar)(const char * s, int NumChars, int x);
353 extern U16 (* _pfGUI__BIDI_GetLogChar )(const char * s, int NumChars, int Index);
354 extern int (* _pfGUI__BIDI_GetCharDir )(const char * s, int NumChars, int Index);
355 extern int (* _pfGUI__BIDI_IsNSM )(U16 Char);
356 
357 /* BiDi-related function pointers */
358 extern const char * (* GUI_CharLine_pfLog2Vis)(const char * s, int * pMaxNumChars);
359 
360 extern int (* GUI__GetCursorPos_pfGetPosX) (const char * s, int MaxNumChars, int Index);
361 extern int (* GUI__GetCursorPos_pfGetPosChar) (const char * s, int MaxNumChars, int x);
362 extern U16 (* GUI__GetCursorPos_pfGetCharacter)(const char * s, int MaxNumChars, int Index, int * pIsRTL);
363 
364 extern int (* GUI__Wrap_pfGetWordWrap)(const char * s, int xSize, int * pxDist);
365 extern int (* GUI__Wrap_pfGetCharWrap)(const char * s, int xSize);
366 
367 /* Proportional font support */
368 const GUI_FONT_PROP * GUIPROP__FindChar(const GUI_FONT_PROP * pProp, U16P c);
369 
370 /* Extended proportional font support */
372 void GUIPROP_EXT__DispLine (const char * s, int Len);
373 void GUIPROP_EXT__ClearLine (const char * s, int Len);
374 void GUIPROP_EXT__SetfpClearLine(void (* fpClearLine)(const char * s, int Len));
375 
376 /* Reading data routines */
377 U16 GUI__Read16(const U8 ** ppData);
378 U32 GUI__Read32(const U8 ** ppData);
379 
380 /* Virtual screen support */
381 void GUI__GetOrg(int * px, int * py);
382 void GUI__SetOrgHook(void(* pfHook)(int x, int y));
383 
384 /* Timer support */
385 int GUI_TIMER__IsActive (void);
390 
391 /* Get function pointers for color conversion */
394 
395 int GUI_GetBitsPerPixelEx(int LayerIndex);
396 
399 LCD_PIXELINDEX * LCD_GetpPalConvTableBM (const LCD_LOGPALETTE * pLogPal, const GUI_BITMAP * pBitmap, int LayerIndex);
400 
401 /* Setting a function for converting a color palette to an array of index values */
402 void GUI_SetFuncGetpPalConvTable(LCD_PIXELINDEX * (* pFunc)(const LCD_LOGPALETTE * pLogPal, const GUI_BITMAP * pBitmap, int LayerIndex));
403 
404 /*********************************************************************
405 *
406 * Format definitions used by streamed bitmaps
407 *
408 * IMPORTANT: DO NOT CHANGE THESE VALUES!
409 * THEY HAVE TO CORRESPOND TO THE DEFINITIONS WITHIN THE CODE OF THE BITMAPCONVERTER!
410 */
411 #define GUI_STREAM_FORMAT_INDEXED 100 /* DO NOT CHANGE */
412 #define GUI_STREAM_FORMAT_RLE4 6 /* DO NOT CHANGE */
413 #define GUI_STREAM_FORMAT_RLE8 7 /* DO NOT CHANGE */
414 #define GUI_STREAM_FORMAT_565 8 /* DO NOT CHANGE */
415 #define GUI_STREAM_FORMAT_M565 9 /* DO NOT CHANGE */
416 #define GUI_STREAM_FORMAT_555 10 /* DO NOT CHANGE */
417 #define GUI_STREAM_FORMAT_M555 11 /* DO NOT CHANGE */
418 #define GUI_STREAM_FORMAT_RLE16 12 /* DO NOT CHANGE */
419 #define GUI_STREAM_FORMAT_RLEM16 13 /* DO NOT CHANGE */
420 #define GUI_STREAM_FORMAT_8888 16 /* DO NOT CHANGE */
421 #define GUI_STREAM_FORMAT_RLE32 15 /* DO NOT CHANGE */
422 #define GUI_STREAM_FORMAT_24 17 /* DO NOT CHANGE */
423 #define GUI_STREAM_FORMAT_RLEALPHA 18 /* DO NOT CHANGE */
424 #define GUI_STREAM_FORMAT_444_12 19 /* DO NOT CHANGE */
425 #define GUI_STREAM_FORMAT_M444_12 20 /* DO NOT CHANGE */
426 #define GUI_STREAM_FORMAT_444_12_1 21 /* DO NOT CHANGE */
427 #define GUI_STREAM_FORMAT_M444_12_1 22 /* DO NOT CHANGE */
428 #define GUI_STREAM_FORMAT_444_16 23 /* DO NOT CHANGE */
429 #define GUI_STREAM_FORMAT_M444_16 24 /* DO NOT CHANGE */
430 #define GUI_STREAM_FORMAT_A555 25 /* DO NOT CHANGE */
431 #define GUI_STREAM_FORMAT_AM555 26 /* DO NOT CHANGE */
432 #define GUI_STREAM_FORMAT_A565 27 /* DO NOT CHANGE */
433 #define GUI_STREAM_FORMAT_AM565 28 /* DO NOT CHANGE */
434 
435 
436 void GUI__ReadHeaderFromStream (GUI_BITMAP_STREAM * pBitmapHeader, const U8 * pData);
437 void GUI__CreateBitmapFromStream(const GUI_BITMAP_STREAM * pBitmapHeader, const void * pData, GUI_BITMAP * pBMP, GUI_LOGPALETTE * pPAL, const GUI_BITMAP_METHODS * pMethods);
438 
439 /* Cache management */
440 int GUI__ManageCache (int Cmd);
441 int GUI__ManageCacheEx(int LayerIndex, int Cmd);
442 
443 /*********************************************************************
444 *
445 * 2d - GL
446 *
447 **********************************************************************
448 */
449 void GL_DispChar (U16 c);
450 void GL_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1);
451 void GL_DrawBitmap (const GUI_BITMAP * pBM, int x0, int y0);
452 void GL_DrawCircle (int x0, int y0, int r);
453 void GL_DrawEllipse (int x0, int y0, int rx, int ry, int w);
454 void GL_DrawHLine (int y0, int x0, int x1);
455 void GL_DrawPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0);
456 void GL_DrawPoint (int x, int y);
457 void GL_DrawLine1 (int x0, int y0, int x1, int y1);
458 void GL_DrawLine1Ex (int x0, int y0, int x1, int y1, unsigned * pPixelCnt);
459 void GL_DrawLineRel (int dx, int dy);
460 void GL_DrawLineTo (int x, int y);
461 void GL_DrawLineToEx (int x, int y, unsigned * pPixelCnt);
462 void GL_DrawLine (int x0, int y0, int x1, int y1);
463 void GL_DrawLineEx (int x0, int y0, int x1, int y1, unsigned * pPixelCnt);
464 void GL_MoveTo (int x, int y);
465 void GL_FillCircle (int x0, int y0, int r);
466 void GL_FillCircleAA (int x0, int y0, int r);
467 void GL_FillEllipse (int x0, int y0, int rx, int ry);
468 void GL_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0);
469 void GL_SetDefault (void);
470 
471 
472 /*********************************************************************
473 *
474 * Callback pointers for dynamic linkage
475 *
476 **********************************************************************
477 Dynamic linkage pointers reduces configuration hassles.
478 */
479 typedef int GUI_tfTimer(void);
480 typedef int WM_tfHandlePID(void);
481 
482 
483 /*********************************************************************
484 *
485 * Cursors
486 *
487 **********************************************************************
488 */
489 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowS[45];
490 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowM[60];
491 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowL[150];
492 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossS[33];
493 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossM[126];
494 extern GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossL[248];
495 extern GUI_CONST_STORAGE unsigned char GUI_PixelsHeaderM[5 * 17];
496 
499 
500 
501 /*********************************************************************
502 *
503 * Text rotation
504 *
505 **********************************************************************
506 */
507 extern GUI_RECT GUI_RectDispString; /* Used by LCD_Rotate...() and GUI_DispStringInRect() */
508 
509 /*********************************************************************
510 *
511 * Flag for setting transparency for 'EXT' fonts
512 *
513 **********************************************************************
514 */
515 extern U8 GUI__CharHasTrans;
516 
517 /*********************************************************************
518 *
519 * Multitasking support
520 *
521 **********************************************************************
522 */
523 extern int GUITASK__EntranceCnt;
524 
525 /*********************************************************************
526 *
527 * Bitmap related functions
528 *
529 **********************************************************************
530 */
531 
532 int GUI_GetBitmapPixelIndex(const GUI_BITMAP * pBMP, unsigned x, unsigned y);
533 GUI_COLOR GUI_GetBitmapPixelColor(const GUI_BITMAP * pBMP, unsigned x, unsigned y);
534 int GUI_GetBitmapPixelIndexEx(int BitsPerPixel, int BytesPerLine, const U8 * pData, unsigned x, unsigned y);
535 
536 void GUI__DrawBitmap16bpp (int x0, int y0, int xsize, int ysize, const U8 * pPixel, const LCD_LOGPALETTE * pLogPal, int xMag, int yMag, tLCDDEV_Index2Color * pfIndex2Color, const LCD_API_COLOR_CONV * pColorConvAPI);
537 void GUI__DrawBitmapA16bpp(int x0, int y0, int xSize, int ySize, const U8 * pPixel, const LCD_LOGPALETTE * pLogPal, int xMag, int yMag, tLCDDEV_Index2Color * pfIndex2Color);
538 void GUI__SetPixelAlpha (int x, int y, U8 Alpha, LCD_COLOR Color);
539 LCD_COLOR GUI__MixColors (LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens);
540 void GUI__MixColorsBulk (U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens);
541 
542 extern const GUI_UC_ENC_APILIST GUI_UC_None;
543 
544 /*********************************************************************
545 *
546 * LCDDEV_L0_xxx
547 *
548 **********************************************************************
549 */
550 #define LCDDEV_L0_Color2Index GUI__apDevice[GUI_pContext->SelLayer]->pColorConvAPI->pfColor2Index
551 #define LCDDEV_L0_Index2Color GUI__apDevice[GUI_pContext->SelLayer]->pColorConvAPI->pfIndex2Color
552 
553 #define LCDDEV_L0_DrawBitmap GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfDrawBitmap
554 #define LCDDEV_L0_DrawHLine GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfDrawHLine
555 #define LCDDEV_L0_DrawVLine GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfDrawVLine
556 #define LCDDEV_L0_DrawPixel GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfDrawPixel
557 #define LCDDEV_L0_FillRect GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfFillRect
558 #define LCDDEV_L0_GetPixel GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfGetPixel
559 #define LCDDEV_L0_GetRect GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfGetRect
560 #define LCDDEV_L0_GetPixelIndex GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfGetPixelIndex
561 #define LCDDEV_L0_SetPixelIndex GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfSetPixelIndex
562 #define LCDDEV_L0_XorPixel GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfXorPixel
563 #define LCDDEV_L0_GetDevFunc GUI__apDevice[GUI_pContext->SelLayer]->pDeviceAPI->pfGetDevFunc
564 
565 void LCD_ReadRect (int x0, int y0, int x1, int y1, LCD_PIXELINDEX * pBuffer, GUI_DEVICE * pDevice);
566 void GUI_ReadRect (int x0, int y0, int x1, int y1, LCD_PIXELINDEX * pBuffer, GUI_DEVICE * pDevice);
567 void GUI_ReadRectEx(int x0, int y0, int x1, int y1, LCD_PIXELINDEX * pBuffer, GUI_DEVICE * pDevice);
568 
569 void LCD_ReadRectNoClip(int x0, int y0, int x1, int y1, LCD_PIXELINDEX * pBuffer, GUI_DEVICE * pDevice);
570 
571 /*********************************************************************
572 *
573 * Internal color management
574 *
575 **********************************************************************
576 */
577 typedef struct {
578  void (* pfSetColor) (LCD_COLOR Index);
579  void (* pfSetBkColor) (LCD_COLOR Index);
580  LCD_DRAWMODE (* pfSetDrawMode)(LCD_DRAWMODE dm);
582 
583 extern const LCD_SET_COLOR_API * LCD__pSetColorAPI;
584 
585 #define LCD__SetBkColorIndex(Index) (*GUI_pContext->LCD_pBkColorIndex = Index)
586 #define LCD__SetColorIndex(Index) (*GUI_pContext->LCD_pColorIndex = Index)
587 #define LCD__GetBkColorIndex() (*GUI_pContext->LCD_pBkColorIndex)
588 #define LCD__GetColorIndex() (*GUI_pContext->LCD_pColorIndex)
589 
590 /* The following 2 defines are only required for compatibility to older versions of the TTF library */
591 #define LCD_BKCOLORINDEX (*GUI_pContext->LCD_pBkColorIndex)
592 #define LCD_COLORINDEX (*GUI_pContext->LCD_pColorIndex)
593 
594 /*********************************************************************
595 *
596 * EXTERNs for GL_CORE
597 *
598 **********************************************************************
599 */
600 extern const GUI_FONT * GUI__pFontDefault;
601 
603 
605 
606 //
607 // Function pointer for converting a palette containing a color array into an index array
608 //
609 extern LCD_PIXELINDEX * (* GUI_pfGetpPalConvTable)(const LCD_LOGPALETTE * pLogPal, const GUI_BITMAP * pBitmap, int LayerIndex);
610 
611 //
612 // Function pointer for mixing up 2 colors
613 //
614 extern LCD_COLOR (* GUI__pfMixColors)(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens);
615 
616 //
617 // Function pointer for mixing up arrays of colors
618 //
619 extern void (* GUI__pfMixColorsBulk)(U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens);
620 
621 //
622 // API list to be used for MultiBuffering
623 //
626 
627 #ifdef GL_CORE_C
628  #define GUI_EXTERN
629 #else
630  #define GUI_EXTERN extern
631 #endif
632 
634 
635 #ifdef WIN32
636  GUI_EXTERN void (* GUI_pfSoftlayerGetPixel)(int x, int y, void * p);
637 #endif
638 
640 
641 GUI_EXTERN const GUI_UC_ENC_APILIST * GUI_pUC_API; /* Unicode encoding API */
642 
647 
648 GUI_EXTERN int GUI__BufferSize; // Required buffer size in pixels for alpha blending and/or antialiasing
649 GUI_EXTERN int GUI_AA__ClipX0; // x0-clipping value for AA module
650 
651 GUI_EXTERN I8 GUI__aNumBuffers[GUI_NUM_LAYERS]; // Number of buffers used per layer
652 
653 #if GUI_SUPPORT_ROTATION
654  GUI_EXTERN const tLCD_APIList * GUI_pLCD_APIList; /* Used for rotating text */
655 #endif
656 
658 
659 #undef GUI_EXTERN
660 
661 
662 #if defined(__cplusplus)
663 }
664 #endif
665 
666 #endif /* GUI_PRIVATE_H */
667 
668 /*************************** End of file ****************************/
GUI_SADDR GUI_CONTEXT * GUI_pContext
int GUI__BIDI_IsNSM(U16 Char)
const U8 GUI__aConvert_255_31[(1<< 8)]
U16 GUI__GetPresentationForm(U16 Char, U16 Next, U16 Prev, int *pIgnoreNext, const char *s)
int GUI__ManageCacheEx(int LayerIndex, int Cmd)
void GL_DrawLine(int x0, int y0, int x1, int y1)
void GL_DrawLine1(int x0, int y0, int x1, int y1)
#define GUI_EXTERN
Definition: GUI_Private.h:630
void GUI_USAGE_AddRect(GUI_USAGE *pUsage, int x0, int y0, int xSize, int ySize)
void GUI_SetFuncGetpPalConvTable(LCD_PIXELINDEX *(*pFunc)(const LCD_LOGPALETTE *pLogPal, const GUI_BITMAP *pBitmap, int LayerIndex))
void GUI_AA__DrawCharAA8(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 *pData)
GUI_EXTERN const tLCD_APIList * GUI_pLCD_APIList
Definition: GUI_Private.h:654
void GL_FillEllipse(int x0, int y0, int rx, int ry)
U16(* _pfGUI__BIDI_GetLogChar)(const char *s, int NumChars, int Index)
tUSAGE_AddHLine * pfAddHLine
Definition: GUI_Private.h:162
I16P YSize
Definition: GUI_Private.h:170
int(* GUI__GetCursorPos_pfGetPosX)(const char *s, int MaxNumChars, int Index)
GUI_EXTERN I16 GUI_OrgY
Definition: GUI_Private.h:657
int(* GUI__Wrap_pfGetWordWrap)(const char *s, int xSize, int *pxDist)
GUI_USAGE_h tUSAGE_CreateCompatible(GUI_USAGE *p)
Definition: GUI_Private.h:140
int GUI_UC__NumBytes2NumChars(const char *s, int NumBytes)
void GUI_USAGE_DecUseCnt(GUI_USAGE_Handle hUsage)
long GUI_AddSign(long v, char **ps)
void GUI_AA_Exit(void)
GUI_EXTERN I16 GUI_OrgX
Definition: GUI_Private.h:657
LCD_PIXELINDEX * LCD_GetpPalConvTableUncached(const LCD_LOGPALETTE *pLogPal)
const GUI_MULTIBUF_API_EX GUI_MULTIBUF_APIListEx
void GUIPROP_EXT__SetfpClearLine(void(*fpClearLine)(const char *s, int Len))
void GL_FillCircleAA(int x0, int y0, int r)
U16 GUI__BIDI_GetCursorCharacter(const char *s, int Index, int MaxNumChars, int *pIsRTL)
void GL_FillCircle(int x0, int y0, int r)
GUI_HMEM GUI_TIMER_HANDLE
Definition: GUI.h:1184
void GL_DrawEllipse(int x0, int y0, int rx, int ry, int w)
#define U32
Definition: Global.h:50
int GUI_UC__NumChars2NumBytes(const char *s, int NumChars)
int GUI_AA_Init_HiRes(int x0, int x1)
void tUSAGE_Clear(GUI_USAGE *p)
Definition: GUI_Private.h:143
GUI_HMEM GUI_USAGE_Handle
Definition: GUI_Private.h:133
GUI_EXTERN WM_tfHandlePID * WM_pfHandlePID
Definition: GUI_Private.h:645
const GUI_MULTIBUF_API GUI_MULTIBUF_APIList
void GUI__SetPixelAlpha(int x, int y, U8 Alpha, LCD_COLOR Color)
U16(* GUI__GetCursorPos_pfGetCharacter)(const char *s, int MaxNumChars, int Index, int *pIsRTL)
int GUI_UC__CalcSizeOfChar(U16 Char)
GUI_EXTERN const GUI_UC_ENC_APILIST * GUI_pUC_API
Definition: GUI_Private.h:641
int GUI__BIDI_GetCharDir(const char *s, int NumChars, int Index)
void GL_DrawLine1Ex(int x0, int y0, int x1, int y1, unsigned *pPixelCnt)
GUI_CONST_STORAGE GUI_LOGPALETTE GUI_CursorPalI
Definition: LCD.h:101
GUI_EXTERN void(* GUI_pfDispCharStyle)(U16 Char)
Definition: GUI_Private.h:646
int GUI__GetOverlap(U16 Char)
void GUI__ReadHeaderFromStream(GUI_BITMAP_STREAM *pBitmapHeader, const U8 *pData)
void GL_DrawLineToEx(int x, int y, unsigned *pPixelCnt)
int GUI_XBF__GetCharInfo(U16P c, GUI_CHARINFO_EXT *pInfo)
Definition: LCD.h:102
void GUI_ReadRectEx(int x0, int y0, int x1, int y1, LCD_PIXELINDEX *pBuffer, GUI_DEVICE *pDevice)
int GUI__GetAlphaBuffer(U32 **ppCurrent, U32 **ppConvert, U32 **ppData, int *pVXSizeMax)
void GL_DrawPolygon(const GUI_POINT *pPoints, int NumPoints, int x0, int y0)
void GL_MoveTo(int x, int y)
#define I8
Definition: Global.h:53
void GUI__CalcTextRect(const char *pText, const GUI_RECT *pTextRectIn, GUI_RECT *pTextRectOut, int TextAlign)
#define LCD_PIXELINDEX
tUSAGE_Delete * pfDelete
Definition: GUI_Private.h:165
const char * GUI__BIDI_Log2VisBuffered(const char *s, int *pMaxNumChars)
#define U16P
Definition: LCD.h:56
GUI_HMEM GUI_MEMDEV_Handle
Definition: GUI.h:889
int GUI__WrapGetNumCharsToNextLine(const char *pText, int xSize, GUI_WRAPMODE WrapMode)
int GUI__strcmp_hp(GUI_HMEM hs0, const char *s1)
void GUI__GetOrg(int *px, int *py)
#define GUI_SADDR
Definition: GUI_Private.h:67
GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossL[248]
GUI_EXTERN I8 GUI__aNumBuffers[GUI_NUM_LAYERS]
Definition: GUI_Private.h:651
int GUI__GetCursorPosX(const char *s, int Index, int MaxNumChars)
tUSAGE_GetNextDirty * pfGetNextDirty
Definition: GUI_Private.h:166
GUI_CONST_STORAGE GUI_LOGPALETTE GUI_CursorPal
int GUI__AllocAlphaBuffer(int AllocDataBuffer)
const LCD_SET_COLOR_API * LCD__pSetColorAPI
void GUI_XBF__GetFontInfo(const GUI_FONT *pFont, GUI_FONTINFO *pInfo)
#define GUI_CONST_STORAGE
int GUI_SIF__GetCharDistX_ExtFrm(U16P c, int *pSizeX)
U16 GUI__Read16(const U8 **ppData)
void GL_DispChar(U16 c)
GUI_EXTERN GUI_tfTimer * GUI_pfTimerExec
Definition: GUI_Private.h:644
LCD_COLOR GUI_COLOR
Definition: GUI_Type.h:50
void GUI_AddDec(I32 v, U8 Len, char **ps)
int GUI__BIDI_Enabled
tUSAGE_AddPixel * pfAddPixel
Definition: GUI_Private.h:161
void GUI_AA__DrawCharAA2(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 *pData)
tLCDDEV_Color2Index * GUI_GetpfColor2IndexEx(int LayerIndex)
tLCDDEV_Index2Color * GUI_GetpfIndex2ColorEx(int LayerIndex)
LCD_COLOR GUI__MixColors(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens)
GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowM[60]
void(* GUI__pfMixColorsBulk)(U32 *pFG, U32 *pBG, U32 *pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens)
const GUI_UC_ENC_APILIST GUI_UC_None
void GL_DrawLineEx(int x0, int y0, int x1, int y1, unsigned *pPixelCnt)
void GL_FillEllipseAA_HiRes(int x0, int y0, int rx, int ry)
int GUI__BIDI_GetCharWrap(const char *s, int xSize)
int GUI_GetBitmapPixelIndexEx(int BitsPerPixel, int BytesPerLine, const U8 *pData, unsigned x, unsigned y)
const U8 GUI__aConvert_255_15[(1<< 8)]
const U32 GUI_Pow10[10]
int(* _pfGUI__BIDI_Log2Vis)(const char *s, int NumChars, char *pBuffer, int BufferSize)
int tUSAGE_GetNextDirty(GUI_USAGE *p, int *pxOff, int yOff)
Definition: GUI_Private.h:145
int LCD_DRAWMODE
Definition: LCD.h:94
GUI_EXTERN GUI_SADDR char GUI_DecChar
Definition: GUI_Private.h:643
GUI_EXTERN void(* GUI_pfHookMTOUCH)(const GUI_MTOUCH_STATE *pState)
Definition: GUI_Private.h:639
int GUI__GetFontSizeY(void)
int GUI__IsArabicCharacter(U16 c)
int GUI__WrapGetNumCharsDisp(const char *pText, int xSize, GUI_WRAPMODE WrapMode)
int GUI__HandleEOLine(const char **ps)
#define I16
Definition: Global.h:56
int GUI_AA_Init(int x0, int x1)
int GUI_XBF__GetCharDistX(U16P c, int *pSizeX)
#define GUI_USAGE_h
Definition: GUI_Private.h:136
void GL_DrawLineTo(int x, int y)
void GUI__DrawBitmap16bpp(int x0, int y0, int xsize, int ysize, const U8 *pPixel, const LCD_LOGPALETTE *pLogPal, int xMag, int yMag, tLCDDEV_Index2Color *pfIndex2Color, const LCD_API_COLOR_CONV *pColorConvAPI)
int(* _pfGUI__BIDI_GetCharDir)(const char *s, int NumChars, int Index)
int GUI_TIMER__IsActive(void)
GUI_COLOR GUI_GetBitmapPixelColor(const GUI_BITMAP *pBMP, unsigned x, unsigned y)
void GUIPROP_EXT__ClearLine(const char *s, int Len)
LCD_COLOR(* GUI__pfMixColors)(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens)
void GUI__CreateBitmapFromStream(const GUI_BITMAP_STREAM *pBitmapHeader, const void *pData, GUI_BITMAP *pBMP, GUI_LOGPALETTE *pPAL, const GUI_BITMAP_METHODS *pMethods)
void GUI__AddSpaceHex(U32 v, U8 Len, char **ps)
LCD_PIXELINDEX * LCD_GetpPalConvTable(const LCD_LOGPALETTE *pLogPal)
int GUI_Long2Len(I32 v)
int GUI_SIF__GetCharInfo_ExtFrm(U16P c, GUI_CHARINFO_EXT *pInfo)
void tUSAGE_AddPixel(GUI_USAGE *p, int x, int y)
Definition: GUI_Private.h:141
int WM_tfHandlePID(void)
Definition: GUI_Private.h:480
int GUI__BIDI_GetWordWrap(const char *s, int xSize, int *pxDist)
void GL_DrawArc(int x0, int y0, int rx, int ry, int a0, int a1)
U8 GUI__CharHasTrans
#define GUI_NUM_LAYERS
Definition: GUIConf.h:41
U16 GUI_UC__GetCharCodeInc(const char **ps)
int GUI__GetNumChars(const char *s)
GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowL[150]
GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossM[126]
char GUI_SIF__IsInFont_ExtFrm(const GUI_FONT *pFont, U16 c)
void GL_SetDefault(void)
tUSAGE_CreateCompatible * pfCreateCompatible
Definition: GUI_Private.h:164
GUI_RECT GUI_RectDispString
int GUI__BIDI_GetCursorPosX(const char *s, int NumChars, int Index)
#define GUI_HMEM
Definition: GUI_Type.h:565
U32 LCD_COLOR
Definition: LCD.h:95
int GUI_sin(int angle)
U32 * GUI__DoAlphaBlending(int x, int y, U32 *pData, int xSize, tLCDDEV_Index2Color *pfIndex2Color_DEV, int *pDone)
GUI_CONST_STORAGE unsigned char GUI_PixelsHeaderM[5 *17]
GUI_TIMER_HANDLE GUI_TIMER__GetNextTimerLin(GUI_TIMER_HANDLE hTimer, U32 *pContext)
int GUI__strcmp(const char *s0, const char *s1)
U32 GUI__Read32(const U8 **ppData)
void GUI__ClearTextBackground(int xDist, int yDist)
void GUI_AddBin(U32 v, U8 Len, char **ps)
GUI_WRAPMODE
Definition: GUI.h:696
int GUI_SIF__GetCharDistX(U16P c, int *pSizeX)
int(* GUI__Wrap_pfGetCharWrap)(const char *s, int xSize)
void GL_FillCircleAA_HiRes(int x0, int y0, int r)
void GUI_AddHex(U32 v, U8 Len, char **ps)
int GUI_XBF__GetOffAndSize(const GUI_XBF_DATA *pXBF_Data, unsigned c, U32 *pOff, U16 *pSize)
void GUI_SIF__GetFontInfo(const GUI_FONT *pFont, GUI_FONTINFO *pfi)
void tUSAGE_AddHLine(GUI_USAGE *p, int x0, int y0, int len)
Definition: GUI_Private.h:142
void GL_DrawBitmap(const GUI_BITMAP *pBM, int x0, int y0)
void GUIPROP_EXT__DispLine(const char *s, int Len)
int GUI_tfTimer(void)
Definition: GUI_Private.h:479
GUI_CONST_STORAGE unsigned char GUI_Pixels_CrossS[33]
char GUI_XBF__IsInFont(const GUI_FONT *pFont, U16 c)
void GUI__MixColorsBulk(U32 *pFG, U32 *pBG, U32 *pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens)
LCD_PIXELINDEX * LCD_GetpPalConvTableBM(const LCD_LOGPALETTE *pLogPal, const GUI_BITMAP *pBitmap, int LayerIndex)
const U8 GUI__aConvert_31_255[(1<< 5)]
const GUI_FONT_PROP_EXT * GUIPROP_EXT__FindChar(const GUI_FONT_PROP_EXT *pPropExt, U16P c)
void GUI__memset(U8 *p, U8 Fill, int NumBytes)
void GUI__DispLine(const char *s, int Len, const GUI_RECT *pr)
const GUI_FONT_PROP * GUIPROP__FindChar(const GUI_FONT_PROP *pProp, U16P c)
void GUI_AA__DrawCharAA4(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8 *pData)
I16 GUI_AA_HiRes2Pixel(int HiRes)
GUI_EXTERN int GUI_AA__ClipX0
Definition: GUI_Private.h:649
int(* GUI__GetCursorPos_pfGetPosChar)(const char *s, int MaxNumChars, int x)
U16 GUI__GetCursorCharacter(const char *s, int Index, int MaxNumChars, int *pIsRTL)
void GL_DrawLineRel(int dx, int dy)
void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char **ps)
int GUI__WrapGetNumBytesToNextLine(const char *pText, int xSize, GUI_WRAPMODE WrapMode)
GUI_CONST_STORAGE unsigned char GUI_Pixels_ArrowS[45]
void GUI_SIF__ClearLine_ExtFrm(const char *s, int Len)
const U8 GUI__aConvert_63_255[(1<< 6)]
void GUI__DrawBitmapA16bpp(int x0, int y0, int xSize, int ySize, const U8 *pPixel, const LCD_LOGPALETTE *pLogPal, int xMag, int yMag, tLCDDEV_Index2Color *pfIndex2Color)
void GL_DrawHLine(int y0, int x0, int x1)
void GL_DrawCircle(int x0, int y0, int r)
GUI_TIMER_HANDLE GUI_TIMER__GetNextTimer(GUI_TIMER_HANDLE hTimer, U32 *pContext)
GUI_TIMER_TIME GUI_TIMER__GetPeriod(void)
int GUI__GetLineNumChars(const char *s, int MaxNumChars)
int GUI__BIDI_GetCursorPosChar(const char *s, int NumChars, int x)
GUI_EXTERN int(* GUI_pfUpdateSoftLayer)(void)
Definition: GUI_Private.h:633
void GUI__SetOrgHook(void(*pfHook)(int x, int y))
GUI_USAGE_Handle GUI_USAGE_BM_Create(int x0, int y0, int xsize, int ysize, int Flags)
tUSAGE_Clear * pfClear
Definition: GUI_Private.h:163
int GUI__BIDI_Log2Vis(const char *s, int NumChars, char *pBuffer, int BufferSize)
void GL_FillPolygon(const GUI_POINT *pPoints, int NumPoints, int x0, int y0)
void GUI_ReadRect(int x0, int y0, int x1, int y1, LCD_PIXELINDEX *pBuffer, GUI_DEVICE *pDevice)
const tUSAGE_APIList * pAPI
Definition: GUI_Private.h:171
void GUI__memset16(U16 *p, U16 Fill, int NumWords)
const U8 GUI__aConvert_255_63[(1<< 8)]
#define GUI_TIMER_TIME
U16 GUI__BIDI_GetLogChar(const char *s, int NumChars, int Index)
void tUSAGE_Delete(GUI_USAGE_h h)
Definition: GUI_Private.h:144
void LCD_ReadRectNoClip(int x0, int y0, int x1, int y1, LCD_PIXELINDEX *pBuffer, GUI_DEVICE *pDevice)
int GUI_GetBitmapPixelIndex(const GUI_BITMAP *pBMP, unsigned x, unsigned y)
const GUI_FONT * GUI__pFontDefault
int GUI_XBF__GetOff(const GUI_XBF_DATA *pXBF_Data, unsigned c, U32 *pOff)
void GUI_AddDecMin(I32 v, char **ps)
GUI_TIMER_HANDLE GUI_TIMER__GetFirstTimer(U32 *pContext)
int GUI__GetLineDistX(const char *s, int Len)
GUI_DEVICE * GUI__apDevice[GUI_NUM_LAYERS]
void GUI_XBF__ClearLine(const char *s, int Len)
#define U16
Definition: Global.h:47
int(* _pfGUI__BIDI_GetCursorPosX)(const char *s, int NumChars, int Index)
unsigned int tLCDDEV_Color2Index(LCD_COLOR Color)
Definition: LCD.h:126
void GUI_MTOUCH__ManagePID(int OnOff)
const U8 GUI__aConvert_15_255[(1<< 4)]
int GUI_GetBitsPerPixelEx(int LayerIndex)
int GUI__strlen(const char *s)
GUI_EXTERN int GUI__BufferSize
Definition: GUI_Private.h:648
int GUI_SIF__GetNumCharAreas(const GUI_FONT *pFont)
void GL_DrawPoint(int x, int y)
int GUITASK__EntranceCnt
void GUI_USAGE_Select(GUI_USAGE_Handle hUsage)
int GUI__GetCursorPosChar(const char *s, int x, int NumCharsToNextLine)
void GUI_SIF__GetFontInfo_ExtFrm(const GUI_FONT *pFont, GUI_FONTINFO *pfi)
#define I16P
Definition: LCD.h:55
LCD_COLOR tLCDDEV_Index2Color(unsigned Index)
Definition: LCD.h:125
int(* _pfGUI__BIDI_GetCursorPosChar)(const char *s, int NumChars, int x)
void LCD_ReadRect(int x0, int y0, int x1, int y1, LCD_PIXELINDEX *pBuffer, GUI_DEVICE *pDevice)
#define I32
Definition: Global.h:59
unsigned GUI__SetAlphaBufferSize(int xSize)
const U8 * GUI_SIF__GetpCharInfo(const GUI_FONT *pFont, U16P c, unsigned SizeOfCharInfo)
int(* _pfGUI__BIDI_IsNSM)(U16 Char)
int GUI_cos(int angle)
int GUI__ManageCache(int Cmd)
char GUI_SIF__IsInFont(const GUI_FONT *pFont, U16 c)
#define U8
Definition: Global.h:44