内存设备的色彩深度 | 系统色彩深度 (LCD_BITSPERPIXEL) |
内存使用情况 |
---|---|---|
1 bpp | 1 bpp | 1 字节/8 像素: (XSIZE + 7) / 8 * YSIZE |
8 bpp | 2bpp、4bpp、8 bpp | XSIZE * YSIZE |
16 bpp | 12bpp、16bpp | 2 字节/像素: XSIZE * YSIZE * 2 |
32 bpp | 18bpp、24bpp、32bpp | 4 字节/像素: XSIZE * YSIZE * 4 |
内存设备的色彩深度 | 系统色彩深度 (LCD_BITSPERPIXEL) |
内存使用情况 |
---|---|---|
1 bpp | 1 bpp | 2 字节/8 像素: (XSIZE + 7) / 8 * YSIZE * 2 |
8 bpp | 2bpp、4bpp、8 bpp | 2 字节/像素 + 1 字节/8 像素: (XSIZE + (XSIZE + 7) / 8) *YSIZE |
16 bpp | 12bpp、16bpp | 2 字节/像素 + 1 字节/8 像素: (XSIZE * 2 + (XSIZE + 7) / 8)* YSIZE |
32 bpp | 18bpp、24bpp、32bpp | 4 字节/像素: XSIZE * YSIZE * 4 |
void GUI_MEMDEV_Clear(GUI_MEMDEV_Handle hMem)
int GUI_MEMDEV_ClearAlpha(GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask)
void GUI_MEMDEV_CopyFromLCD(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_CopyToLCD(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_CopyToLCDAA(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_CopyToLCDAt(GUI_MEMDEV_Handle hMem, int x, int y)
GUI_MEMDEV_Handle GUI_MEMDEV_Create(int x0, int y0, int xSize, int ySize)
GUI_MEMDEV_Handle GUI_MEMDEV_CreateEx(int x0, int y0, int xSize, int ySize, int Flags)
GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed(int x0, int y0, int xSize, int ySize, int Flags,const GUI_DEVICE_API * pDeviceAPI,const LCD_API_COLOR_CONV * pColorConvAPI)
GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed32(int x0, int y0, int xSize, int ySize)
int GUI_MEMDEV_Delete(GUI_MEMDEV_Handle hMem)
void* GUI_MEMDEV_GetDataPtr(GUI_MEMDEV_Handle hMem)
int GUI_MEMDEV_GetXSize(GUI_MEMDEV_Handle hMem)
int GUI_MEMDEV_GetYSize(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_MarkDirty(GUI_MEMDEV_Handle hMem, int x0, int y0, int x1, int y1)
int GUI_MEMDEV_PunchOutDevice(GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask)
void GUI_MEMDEV_ReduceYSize(GUI_MEMDEV_Handle hMem, int YSize)
GUI_MEMDEV GUI_MEMDEV_Select(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_SerializeBMP(GUI_MEMDEV_Handle hDev, GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p)
void GUI_MEMDEV_SetOrg(GUI_MEMDEV_Handle hMem, int x0, int y0)
void GUI_MEMDEV_Write(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_WriteAlpha(GUI_MEMDEV_Handle hMem, int Alpha)
void GUI_MEMDEV_WriteAlphaAt(GUI_MEMDEV_Handle hMem, int Alpha, int x, int y)
void GUI_MEMDEV_WriteAt(GUI_MEMDEV_Handle hMem, int x, int y)
void GUI_MEMDEV_WriteEx(GUI_MEMDEV_Handle hMem, int xMag, int yMag, int Alpha)
void GUI_MEMDEV_WriteExAt(GUI_MEMDEV_Handle hMem, int x, int y, int xMag, int yMag, int Alpha)
void GUI_MEMDEV_WriteOpaque(GUI_MEMDEV_Handle hMem)
void GUI_MEMDEV_WriteOpaqueAt(GUI_MEMDEV_Handle hMem, int x, int y)
void GUI_SelectLCD(void)
MainTask.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "GUI.h"
#include "stdio.h"
/*******************************************************************************
* 全局变量
******************************************************************************/
/*******************************************************************************
* 函数
******************************************************************************/
/**
* @brief 绘图函数
* @note 无
* @param
* @retval 无
*/
static void _Draw(int x0, int y0, int x1, int y1, int i)
{
char buf[] = {0};
/* 绘制矩形背景 */
GUI_SetColor(GUI_BLUE);
GUI_FillRect(x0, y0, x1, y1);
/* 绘制文本 */
GUI_SetFont(GUI_FONT_D64);
GUI_SetTextMode(GUI_TEXTMODE_XOR);
sprintf(buf, "%d", i);
GUI_DispStringHCenterAt(buf, x0 + (x1 - x0)/2, (y0 + (y1 - y0)/2) - 32);
}
/**
* @brief 内存设备演示函数
* @note 无
* @param 无
* @retval 无
*/
static void _DemoMemDev(void)
{
GUI_MEMDEV_Handle hMem = 0;
int i = 0;
/* 设置背景色 */
GUI_SetBkColor(GUI_BLACK);
GUI_Clear();
/* 显示提示文字 */
GUI_SetColor(GUI_WHITE);
GUI_SetFont(GUI_FONT_20_ASCII);
GUI_DispStringHCenterAt("MEMDEV_MemDev - Sample", 120, 5);
GUI_SetFont(GUI_FONT_16_ASCII);
GUI_DispStringHCenterAt("Shows the advantage of using a\nmemorydevice", 120, 45);
GUI_SetFont(GUI_FONT_13_ASCII);
GUI_DispStringHCenterAt("Draws the number\nwithout a\nmemory device", 65, 220);
GUI_DispStringHCenterAt("Draws the number\nusing a\nmemory device", 175, 220);
/* 创建内存设备 */
hMem = GUI_MEMDEV_Create(125, 100, 100, 100);
while (1)
{
/* 直接绘制 */
_Draw(15, 100, 115, 200, i);
/* 激活内存设备 */
GUI_MEMDEV_Select(hMem);
/* 向内存设备中绘制图形 */
_Draw(125, 100, 225, 200, i);
/* 选择LCD */
GUI_MEMDEV_Select(0);
/* 将内存设备中的内容复制到LCD */
GUI_MEMDEV_CopyToLCDAt(hMem, 125, 100);
GUI_Delay(40);
i++;
if (i > 99)
{
i = 0;
}
}
}
/**
* @brief GUI主任务
* @param 无
* @retval 无
*/
void MainTask(void)
{
_DemoMemDev();
}