Files
player/Project/Src/MyWin/MyWinCore/mywin_draw.h
2025-07-06 18:46:13 +08:00

143 lines
4.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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, u32 color);
void WIN_DrawPointColorNormal(int x, int y, u32 color);
void WIN_DrawPointSafeColorAlpha(int x, int y, u16 color, u8 alpha);
u32 WIN_SetLcdColor(u32 color);
u32 WIN_SetLcdBkColor(u32 color);
u16 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, u16 color, u8 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, u8 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, u16 *buff, u16 pic_x,
u16 pic_y, u16 pic_xsize, u16 pic_ysize);
// 用带透明度的图片填充矩形
void WIN_FillRectAlpha(int x, int y, int x_size, int y_size, void *buff,
u16 pic_x, u16 pic_y, u16 pic_xsize, u16 pic_ysize);
// 绘制图标,图标使用const数组编译在程序里其本身已经附带了大小等参数
void WIN_DrawImag(int x, int y, int xsize, int ysize, const u8 *buff);
// 绘制图标,但是不绘制指定颜色
void WIN_DrawImagButColor(int x, int y, int xsize, int ysize, const u8 *buff,
u16 color);
// 绘制图标,把图像的有效部分绘制为指定颜色
void WIN_DrawImagByColor(int x, int y, int xsize, int ysize, const u8 *buff,
u16 color);
// 绘制图标,把原图像转化为透明度,用指定颜色来绘制
// 此函数效率比较低,只用于绘制小图标,绘制图片使用矩形填充函数
void WIN_DrawImagByAlpha(int x, int y, int xsize, int ysize, const u8 *buff,
u16 color);
// 透明度绘制图像,反色处理
void WIN_DrawImagByAlphaAnti(int x, int y, int xsize, int ysize, const u8 *buff,
u16 color);
/*******************************绘制图像End********************************/
/********************************清屏********************************/
// 清空显示
void WIN_Clear(void);
/*******************************清屏End********************************/
/*******************************计算绘制资源********************************/
// 获得文字的矩形大小
void WIN_GetTxtRectSize(char *txt, int *x_size, int *y_size);
// 获得图像数据的尺寸,返回0成功非0失败
int WIN_GetImageSize(u8 *buff, int *xsize, int *ysize);
/******************************计算绘制资源End********************************/
#endif