#ifndef MYWIN_LCD_H__ #define MYWIN_LCD_H__ #include "mywin_type.h" // 创建一个虚拟屏幕 WIN_LcdStruct *WIN_CreatVirtualLcd(int x_size, int y_size); // 删除虚拟屏幕 void WIN_DeleteVirtualLcd(WIN_LcdStruct *lcd); // 设置屏幕显示方向 void WIN_LcdSetScreenDis(WIN_LcdStruct *lcd, int d); // 设置活动窗口 void WIN_LcdSetWindow(WIN_LcdStruct *lcd, int x_s, int y_s, int x_size, int y_size); int WIN_LcdGetWindowSizeX(WIN_LcdStruct *lcd); int WIN_LcdGetWindowSizeY(WIN_LcdStruct *lcd); int WIN_LcdGetLcdSizeX(WIN_LcdStruct *lcd); int WIN_LcdGetLcdSizeY(WIN_LcdStruct *lcd); uint32_t WIN_LcdSetLcdColor(WIN_LcdStruct *lcd, uint32_t color); uint32_t WIN_LcdSetLcdBkColor(WIN_LcdStruct *lcd, uint32_t color); uint32_t WIN_LcdSetLcdColor16(WIN_LcdStruct *lcd, uint32_t color); uint32_t WIN_LcdSetLcdBkColor16(WIN_LcdStruct *lcd, uint32_t color); uint32_t WIN_LcdGetLcdColor(WIN_LcdStruct *lcd); uint32_t WIN_LcdGetLcdBkColor(WIN_LcdStruct *lcd); uint32_t WIN_LcdGetLcdColor16(WIN_LcdStruct *lcd); uint32_t WIN_LcdGetLcdBkColor16(WIN_LcdStruct *lcd); // 设置绘制模式,1,不绘制背景,0,绘制背景 void WIN_LcdSetLcdDrawMode(WIN_LcdStruct *lcd, int mode); void WIN_LcdFillRectOff16At(WIN_LcdStruct *lcd, int s_x, int s_y, int s_xsize, int s_ysize, uint16_t *buff, int x_s, int y_s, int xsize, int ysize); // 安全画点,以屏幕窗口的坐标为原点,并且画点不会超出窗口范围 void WIN_LcdDrawPointSafe(WIN_LcdStruct *lcd, int x, int y, int mode); // 安全画点,以屏幕窗口的坐标为原点,并且画点不会超出窗口范围 // 以指定颜色画点,而不是前景色 void WIN_LcdDrawPointSafeColor(WIN_LcdStruct *lcd, int x, int y, uint16_t color); // 以指定色透明度画点0~32,0,全透明,31,不透明 void WIN_LcdDrawPointSafeColorAlpha(WIN_LcdStruct *lcd, int x, int y, uint16_t color, uint8_t alpha); // 填充矩形,已窗口坐标为原点 void WIN_LcdFillRectByColor(WIN_LcdStruct *lcd, int x, int y, int x_size, int y_size); // 以透明度填充矩形,已窗口坐标为原点 void WIN_LcdFillRectByColorAlpha(WIN_LcdStruct *lcd, int x, int y, int x_size, int y_size, uint8_t alpha); // 绘制图标,图标使用const数组编译在程序里,其本身已经附带了大小等参数 // 此函数效率比较低,只用于绘制小图标,绘制图片使用矩形填充函数 void WIN_LcdDrawImag(WIN_LcdStruct *lcd, int x, int y, int xsize, int ysize, const uint8_t *buff); // 绘制图标,但是不绘制指定颜色 void WIN_LcdDrawImagButColor(WIN_LcdStruct *lcd, int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 绘制图标,把图像的有效部分绘制为指定颜色 // 此函数效率比较低,只用于绘制小图标,绘制图片使用矩形填充函数 void WIN_LcdDrawImagByColor(WIN_LcdStruct *lcd, int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 绘制图标,把原图像转化为透明度,用指定颜色来绘制 // 此函数效率比较低,只用于绘制小图标,绘制图片使用矩形填充函数 void WIN_LcdDrawImagByAlpha(WIN_LcdStruct *lcd, int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 清除绘图窗口内的显示 void WIN_LcdClear(WIN_LcdStruct *lcd); // 清除矩形内的显示 void WIN_LcdClearRect(WIN_LcdStruct *lcd, int x, int y, int x_size, int y_size); // 获取指定矩形空间的屏幕颜色,屏幕的绝对坐标 void WIN_LcdGetColors(WIN_LcdStruct *lcd, uint16_t *buff, int x_s, int y_s, int x_size, int y_size); #endif