KT25-1015_AC695x_SDK310/include_lib/system/ui/ui/ui_circle.h
2025-10-15 15:18:43 +08:00

67 lines
1.2 KiB
C

#ifndef __CIRCLE_H__
#define __CIRCLE_H__
#include "typedef.h"
#include "generic/rect.h"
#define false 0
#define true 1
#define COORD_MAX (16383) /*To avoid overflow don't let the max [-32,32k] range */
#define COORD_MIN (-16384)
#define MATH_ABS(x) ((x)>0?(x):(-(x)))
typedef struct {
uint16_t color;
uint16_t width;
} style_t;
typedef struct {
uint16_t x;
uint16_t y;
uint16_t disp_x;
uint16_t disp_y;
uint16_t width;
uint16_t height;
uint16_t pitch;
uint16_t len;
uint8_t *buf;
int color;
int bitdepth;
struct rect *rect;
style_t *style;
} area_t;
struct circle_info {
int x;
int y;
int disp_x;
int disp_y;
int center_x;
int center_y;
int radius_big;
int radius_small;
int angle_begin;
int angle_end;
int angle_curr;
int color;
int left;
int top;
int width;
int height;
int bitmap_width;
int bitmap_height;
int bitmap_pitch;
int bitmap_depth;
u8 *bitmap;
int bitmap_size;
};
void draw_arc(int16_t center_x, int16_t center_y, uint16_t radius, uint16_t start_angle, uint16_t end_angle, const area_t *area);
void draw_circle_by_percent(struct circle_info *info, u8 percent);
#endif