重要提示: 本文描述的API是一个XEGE内核所必须提供的API,与最终使用时的API无关,该标准供参考,届时会根据此标准开发第一个可用核心——GDI+核心。并且,这里的y轴原点在左上角,上小下大!
类型名 | 含义 | 实现方式 |
---|---|---|
XEGE_ColorF | ARGB浮点颜色 | struct{float ....} |
XEGE_Color | ARGB传统颜色 | uint |
XEGE_Point2 | 2d点 | struct{float x,float y} |
XEGE_Index | 标准索引,使用下标而非指针 | size_t |
XEGE_Texture | 纹理,一切内容最终画在纹理上 | struct |
名称 | 类别 | 作用 |
---|---|---|
XEGE_ColorFormat | 枚举 | 储存颜色格式,要求至少提供ARGB_INT,ARGB_FLOAT可选 |
注: 一个合法的核心必须提供如下函数,且都能正常工作
函数名 | 作用 |
---|---|
void* XEGE_GetBuffer(texture t) | 获取纹理指针 |
int XEGE_GetWidth(texture t) | 获取纹理宽 |
int XEGE_GetHeight(texture t) | 获取纹理高 |
bool XEGE_FuncExsit(char* /wchar_t* name) | 判断函数是否存在 |
void XEGE_InitGraph(int w,int h,int mode) | 创建绘图环境(不需要模式) |
void XEGE_CloseGraph() | 关闭绘图环境 |
注: 一个核心不一定要提供这些功能(返回false),但是这将导致相应的输入函数失效
函数名 | 作用 |
---|---|
bool XEGE_GetMouseXY(int* x,int* y) | 获得鼠标相对于窗口的坐标 |
bool XEGE_GetMouseStates(bool* l,bool* r,int* w) | 获取鼠标瞬时状态,分别表示左键状态、右键状态、中键值 |
bool XEGE_GetKeyState(bool* state,int key) | 判断key键的状态,类似鼠标,暂时使用windows虚拟键值表 |
注: 返回bool表示是否绘图成功,不实现者必须返回false(非绘图类除外),必须有一参数指定画在哪个纹理上(不需要考虑哪个纹理是屏幕)。 大部分函数 若不实现会进行软渲染。
函数名 | 作用 |
---|---|
void XEGE_SetColorFomat(int format) | 设定颜色格式 |
void XEGE_GetColorFomat(int format) | 获取颜色格式 |
colorF/color XEGE_SetColor(colorF/color c) | 颜色,返回之前的颜色 |
colorF/color XEGE_SetFillColor(colorF/color c) | 填充色,返回之前的颜色 |
colorF/color XEGE_GetColor() | 颜色 |
colorF/color XEGE_GetFillColor() | 填充色 |
bool XEGE_DrawPoint(point2 p) | 点 |
bool XEGE_DrawLineW(point2 p1,point2 p2) | 使用线宽的直线 |
bool XEGE_DrawLine(point2 p1,point2 p2) | 直线 |
bool XEGE_DrawCircle(point2 center,int radius) | 画不填充圆 |
bool XEGE_DrawRect(point2 a,point2 b) | 画不填充矩形 |
bool XEGE_DrawEllipse(point2 a,point2 b) | 画不填充椭圆 |
bool XEGE_DrawRect(point2 a,point2 b) | 画不填充矩形,b是端点而不是长宽 |
其他Draw | 绘制其他不填充图形 |
bool XEGE_FillCircle(point2 a,int radius) | 画填充圆 |
其他Fill | 绘制其他填充图形(参数类似draw类) |
bool XEGE_SetFont | 设置字体 |
bool XEGE_GetFont | 获得当前字体 |
bool XEGE_OutTextXY | 指定位置输出字符串 |
bool XEGE_DrawTexture(texture t) | 绘制纹理 |
bool XEGE_LoadTexture(texture& dest,texture src,point2 a,point2 b) | 从src中截取到dest,坐标参数同rect |
bool XEGE_LoadTexture(texture& dest,string/wstring filename,point2 a,point2 b) | 从文件读Texture,a、b表示截取的范围 |
自定义函数对命名、参数之类的没有需求,但为了避免冲突,请命名为 内核名+'_'+函数名,该类函数使用funcExsit判断它是否存在,若存在即使用,否则使用替代方案