#ifndef MYWIN_DRAW_H__ #define MYWIN_DRAW_H__ #include "mywin_type.h" /*****************************接口函数******************************/ void WIN_DrawPointSafe(int x, int y, int mode); void WIN_DrawPointNormal(int x, int y, int mode); void WIN_DrawPointColorSafe(int x, int y, uint32_t color); void WIN_DrawPointColorNormal(int x, int y, uint32_t color); void WIN_DrawPointSafeColorAlpha(int x, int y, uint16_t color, uint8_t alpha); uint32_t WIN_SetLcdColor(uint32_t color); uint32_t WIN_SetLcdBkColor(uint32_t color); uint16_t WIN_GetLcdColor16(void); /****************************接口函数End******************************/ /*****************************字符显示函数******************************/ void WIN_DrawTxtAt(char *txt, int x, int y); // 在指定矩形中显示字符串,支持换行符\n void WIN_DrawTxtAtRect(char *txt, int x, int y, int x_size, int y_size); // 在指定矩形居中显示字符串,支持换行符\n void WIN_DrawTxtCenterAtRect(char *txt, int x, int y, int x_size, int y_size); void WIN_DrawTxtHCenterAt(char *txt, int x, int y); /***************************字符显示函数End******************************/ /*****************************绘制几何图形******************************/ void WIN_DrawHLine(int x_s, int y, int x_e); // 有透明度的划线,dis=0,正方向,dis=1,反方向 void WIN_DrawHLineAlpha(int x_s, int y, int x_e, uint16_t color, uint8_t dis); void WIN_DrawVLine(int x, int y_s, int y_e); // 画线 x1,y1:起点坐标 x2,y2:终点坐标 void WIN_DrawLine(int x1, int y1, int x2, int y2); // 绘制连续线段 void WIN_DrawLines(POINT_Struct *Points, int PointCount); // 在指定位置画一个指定大小的圆 (x,y):中心点 r :半径 void WIN_DrawCircle(int x0, int y0, int r); // 绘制空心矩形 void WIN_DrawRect(int x, int y, int x_size, int y_size); // 绘制多边形 void WIN_DrawPolygon(POINT_Struct *Points, int PointCount); // 用纯色填充矩形 void WIN_FillRectByColor(int x, int y, int x_size, int y_size); // 用纯色和透明度填充矩形 void WIN_FillRectByColorAlpha(int x, int y, int x_size, int y_size, uint8_t alpha); // 填充三角形 void WIN_FillTriangle(int x1, int x2, int x3, int y1, int y2, int y3); // 填充多边形 void WIN_FillPolygon(POINT_Struct *Points, int PointCount); // 创建一个抗锯齿绘图平面 WIN_PlaneAAStruct *WIN_CreatPlaneAA(int x, int y, int x_size, int y_size, int accuracy); // 删除一个抗锯齿平面 void WIN_DeletePlaneAA(WIN_PlaneAAStruct *p); // 在平面内绘制抗锯齿点 void WIN_DrawPointAA(WIN_PlaneAAStruct *p, int x, int y); // 绘制一个抗锯齿绘图平面 void WIN_DrawPlaneAA(WIN_PlaneAAStruct *p); // 抗锯齿画线 void WIN_DrawLineAA(int x1, int y1, int x2, int y2, int accuracy); /***************************绘制几何图形End******************************/ /*******************************绘制图像********************************/ // 用背景图片填充矩形 void WIN_FillRect(int x, int y, int x_size, int y_size, uint16_t *buff, uint16_t pic_x, uint16_t pic_y, uint16_t pic_xsize, uint16_t pic_ysize); // 用带透明度的图片填充矩形 void WIN_FillRectAlpha(int x, int y, int x_size, int y_size, void *buff, uint16_t pic_x, uint16_t pic_y, uint16_t pic_xsize, uint16_t pic_ysize); // 绘制图标,图标使用const数组编译在程序里,其本身已经附带了大小等参数 void WIN_DrawImag(int x, int y, int xsize, int ysize, const uint8_t *buff); // 绘制图标,但是不绘制指定颜色 void WIN_DrawImagButColor(int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 绘制图标,把图像的有效部分绘制为指定颜色 void WIN_DrawImagByColor(int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 绘制图标,把原图像转化为透明度,用指定颜色来绘制 // 此函数效率比较低,只用于绘制小图标,绘制图片使用矩形填充函数 void WIN_DrawImagByAlpha(int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); // 透明度绘制图像,反色处理 void WIN_DrawImagByAlphaAnti(int x, int y, int xsize, int ysize, const uint8_t *buff, uint16_t color); /*******************************绘制图像End********************************/ /********************************清屏********************************/ // 清空显示 void WIN_Clear(void); /*******************************清屏End********************************/ /*******************************计算绘制资源********************************/ // 获得文字的矩形大小 void WIN_GetTxtRectSize(char *txt, int *x_size, int *y_size); // 获得图像数据的尺寸,返回0,成功,非0,失败 int WIN_GetImageSize(uint8_t *buff, int *xsize, int *ysize); /******************************计算绘制资源End********************************/ #endif