This commit is contained in:
huxi
2025-12-03 11:12:34 +08:00
parent c23ae4f24c
commit bc195654bf
8163 changed files with 3799544 additions and 92 deletions
+144
View File
@@ -0,0 +1,144 @@
#ifndef UI_FIGURE_H
#define UI_FIGURE_H
#include "ui_draw/ui_circle.h"
#include "ui_draw/ui_rect.h"
#include "ui_draw/ui_basic.h"
#include "ui_draw/ui_mask.h"
#include "ui_draw/ui_curve_grad.h"
//ui_draw_default_id
#define DRAW_LINE 0x1
#define DRAW_LINE_BY_ANGLE 0x2
#define DRAW_RECT 0x3
#define FILL_RECT 0x4
#define DRAW_CIRCLE 0x5
#define DRAW_RING 0x6
#define DRAW_RING_CPU 0x7
#define DRAW_BAR_CPU 0x8
#define DRAW_LINEMETER 0x9
#define DRAW_AIRECT 0xa
#define DRAW_NEWLINE 0xb
#define DRAW_POLY 0xc
#define DRAW_SMOOTH_LINE 0xd
#define DRAW_BAR 0xe
#define DRAW_CURVE_GRAD 0xf
typedef enum {
DRAW_SLIDEBAR_HORIZONTAL_LEFT,
DRAW_SLIDEBAR_HORIZONTAL_RIGHT,
DRAW_SLIDEBAR_VERTICAL_TOP,
DRAW_SLIDEBAR_VERTICAL_BTM,
} SLIDEBAR_STYLE;
struct _line {
int x_begin;
int y_begin;
int x_end;
int y_end;
int length;
int angle;
int color;
};
struct _rect {
struct rect rectangle;
int color;
};
/* ------------------------------------------------------------------------------------*/
/**
* @brief draw_line 画水平/垂直线段接口
*
* @param _dc dc
* @param line_info 线段参数
*/
/* ------------------------------------------------------------------------------------*/
void draw_line(void *_dc, struct _line *line_info);
/* ------------------------------------------------------------------------------------*/
/**
* @brief draw_line_by_angle 带角度的线段
*
* @param _dc dc
* @param line_info 线段参数
*/
/* ------------------------------------------------------------------------------------*/
void draw_line_by_angle(void *_dc, struct _line *line_info);
/* ------------------------------------------------------------------------------------*/
/**
* @brief draw_triangle 绘制三角形
*
* @param _dc dc
* @param line_info1 边1参数
* @param line_info2 边2参数
* @param line_info3 边3参数
*/
/* ------------------------------------------------------------------------------------*/
void draw_triangle(void *_dc, struct _line *line_info1, struct _line *line_info2, struct _line *line_info3);
/* ------------------------------------------------------------------------------------*/
/**
* @brief draw_rect 绘制矩形(非填充)
*
* @param _dc dc
* @param rectangle 矩形参数
* @param color 边框颜色
*/
/* ------------------------------------------------------------------------------------*/
void draw_rect(void *_dc, struct rect *rectangle, u16 color);
/* ------------------------------------------------------------------------------------*/
/**
* @brief draw_circle_or_arc 绘制圆或弧
*
* @param _dc dc
* @param info 圆/弧参数
*/
/* ------------------------------------------------------------------------------------*/
void draw_circle_or_arc(void *_dc, struct circle_info *info);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_draw_default 绘制default_id的图形
*
* @param id 见ui_draw_default_id
* @param dst_buf 屏显buffer
* @param dst_r 屏显区域
* @param src_r 绘制区域
* @param bytes_per_pixel 像素字节数
* @param priv 图像参数
*/
/* ------------------------------------------------------------------------------------*/
void ui_draw_default(int id, u8 *dst_buf, struct rect *dst_r, struct rect *src_r, u8 bytes_per_pixel, void *priv);
typedef void (*custom_draw_func)(int id, u8 *dst_buf, struct rect *dst_r, struct rect *src_r, u8 bytes_per_pixel, void *priv);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_draw_curve_grad 绘制平滑曲线渐变图
*
* @Params _dc dc
* @Params x 绘制x坐标
* @Params y 绘制y坐标
* @Params width 绘制宽度
* @Params height 绘制高度
* @Params points 离散点坐标列表
* @Params points_num 离散点坐标数量
* @Params line_width 曲线宽度(像素)
* @Params color 绘制颜色
*/
/* ------------------------------------------------------------------------------------*/
void ui_draw_curve_grad(void *_dc, int x, int y, int width, int height, struct cg_point *points, int points_num, int line_width, u32 color);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_draw_get_color 获取自定义绘图的配置颜色
*
* @Params id 自定义绘图功能ID
* @Params priv 自定义绘图功能配置
*
* @return ARGB8565 颜色值
*/
/* ------------------------------------------------------------------------------------*/
u32 ui_draw_get_color(u32 id, void *priv);
#endif