Files
player/Project/Src/MyWin/MyWinCore/mywin_lib.h

125 lines
3.1 KiB
C
Raw Permalink Normal View History

2025-06-27 00:32:57 +08:00
#ifndef MYWIN_LIB_H__
#define MYWIN_LIB_H__
#include "string.h"
#include "stdio.h"
#include "mywin_cfg.h"
#include "mywin_type.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