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

98 lines
2.7 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_LIB_H__
#define MYWIN_LIB_H__
#include "mywin_cfg.h"
#include "mywin_type.h"
#include "stdio.h"
#include "string.h"
// 初始化已实例化的队列
void QUEUE_Init(QUEUE_Struct *q, int blocksize, int blocknum);
// 销毁队列
void QUEUE_Delete(QUEUE_Struct *q);
// 出队,如果队列为空返回0否则返回1
int QUEUE_Out(QUEUE_Struct *q, void *buff);
// 入队如果队列已满返回1并且本次入队失败
int QUEUE_In(QUEUE_Struct *q, void *block);
// 查看初始化
int QUEUE_CheckStart(QUEUE_Struct *q);
// 查看数据还有数据返回没有数据返回0
void *QUEUE_Check(QUEUE_Struct *q);
// 判断两个点的距离是否超过了半径没超过返回0超过了返回非0
int POS_RoundPix(int r, int x1, int y1, int x2, int y2);
// 判断指定点是否在矩形内,1,在0不在
int POS_InRect(int rect_x, int rect_y, int rect_x_size, int rect_y_size, int x,
int y);
// 两个矩形求交集
int POS_RectIntersection(RECT_Struct *out, RECT_Struct *r1, RECT_Struct *r2);
// 求一个大矩形,包含两个小矩形
int POS_RectContain(RECT_Struct *out, RECT_Struct *r1, RECT_Struct *r2);
// 两个矩形相减,减去后不为空返回1
int POS_RectSub(RECT_Struct *out, RECT_Struct *r1, RECT_Struct *r2);
// 判断两个矩形相等是返回1不是返回0
int POS_RectEqual(RECT_Struct *r1, RECT_Struct *r2);
/**************************由于以下函数实现是平台相关的*****************************/
/***************************需要依赖其他库或者操作系统******************************/
/*************************如果在界面中需要使用到以下函数****************************/
/**************************需要在mywin_cfg.c文件中实现*****************************/
/* 多线程 */
// 供MYWIN调用的创建线程函数,创建成功返回工作空间结构体
// fun是工作函数ptr是传送给工作函数的参数ret是工作函数的返回值
WIN_WorkFunStruct *WIN_CreatThread(int (*fun)(void *), void *ptr, int *ret);
// 供MYWIN调用的创建线程函数,创建成功返回工作空间结构体
// fun是工作函数ptr是传送给工作函数的参数ret是工作函数的返回值
WIN_WorkFunStruct *WIN_CreatThreadPro(int (*fun)(void *), void *ptr, int *ret,
u8 pro);
// 获取工作线程运行状态1运行结束
int WIN_GetExWorkFunStat(WIN_WorkFunStruct *w);
// 线程所用资源回收函数,由发起线程调用
void WIN_ExWorkFunClear(WIN_WorkFunStruct *w);
/* 多线程End */
/* 获取字模 */
// 根据字体类型获取字模数据,返回0成功非0失败
int WIN_GetWordData(u8 size, u8 type, unsigned char *buff, int word,
int buff_size);
/* 获取字模End */
/* 获取图片 */
// 解码图片0成功1失败
int WIN_DecodeImg(WIN_PicStruct *pic, const char *name);
/* 获取图片End */
/* 基础配置 */
// 初始化配置
void WIN_InitCfg(void);
// 获取从上次获取时间算起过去了多少毫秒
unsigned int WIN_GetTimePast(void);
// 供MYWIN调用的延时函数
void WIN_Delay_ms(u32 ms);
/* 基础配置End */
#endif