Tiny Graphics Interfaces
|
Tiny Graphics Interfaces 更多...
#include <stdarg.h>
结构体 | |
struct | TGI_Application |
应用对象类型 更多... | |
struct | TGI_Window |
窗口对象类型 更多... | |
struct | TGI_Graphics |
图形对象类型 更多... | |
struct | TGI_Image |
图像对象类型 更多... | |
struct | TGI_Font |
字体对象类型 更多... | |
struct | TGI_Timer |
计时器对象类型 更多... | |
struct | TGI_Point |
点(坐标)类型 更多... | |
struct | TGI_Rect |
矩形类型 更多... | |
struct | TGI_KeyEvent |
键盘事件类型 更多... | |
struct | TGI_MouseEvent |
鼠标事件类型 更多... | |
struct | vtable_TGI_Application_t |
应用对象的虚函数表(正常使用无需了解) 更多... | |
struct | vtable_TGI_Window_t |
窗口对象的虚函数表(正常使用无需了解) 更多... | |
struct | vtable_TGI_Graphics_t |
图形对象的虚函数表(正常使用无需了解) 更多... | |
struct | vtable_TGI_Image_t |
图片对象的虚函数表(正常使用无需了解) 更多... | |
struct | vtable_TGI_Font_t |
字体对象的虚函数表(正常使用无需了解) 更多... | |
struct | vtable_TGI_Timer_t |
计时器对象的虚函数表(正常使用无需了解) 更多... | |
宏定义 | |
#define | TGIAPI __stdcall |
#define | TGICB TGIAPI |
#define | TGI_COLOR(a, r, g, b) ((((TGI_Color)(a)) << 24) | (((TGI_Color)(r)) << 16) | (((TGI_Color)(g)) << 8) | ((TGI_Color)(b))) |
创建一个ARGB颜色 | |
类型定义 | |
typedef enum TGI_Backend | TGI_Backend |
图形后端类型 | |
typedef enum TGI_Encoding | TGI_Encoding |
文本编码类型 | |
typedef struct TGI_Application | TGI_Application |
应用对象类型 | |
typedef struct TGI_Window | TGI_Window |
窗口对象类型 | |
typedef enum TGI_WindowStyle | TGI_WindowStyle |
窗口风格类型 | |
typedef struct TGI_Graphics | TGI_Graphics |
图形对象类型 | |
typedef struct TGI_Image | TGI_Image |
图像对象类型 | |
typedef struct TGI_Font | TGI_Font |
字体对象类型 | |
typedef enum TGI_FontStyle | TGI_FontStyle |
字体样式类型 | |
typedef enum TGI_TextAlign | TGI_TextAlign |
字体对齐方法类型 | |
typedef struct TGI_Timer | TGI_Timer |
计时器对象类型 | |
typedef unsigned int | TGI_Color |
颜色类型 | |
typedef struct TGI_Point | TGI_Point |
点(坐标)类型 | |
typedef struct TGI_Rect | TGI_Rect |
矩形类型 | |
typedef struct TGI_KeyEvent | TGI_KeyEvent |
键盘事件类型 | |
typedef struct TGI_MouseEvent | TGI_MouseEvent |
鼠标事件类型 | |
枚举 | |
enum | TGI_Backend { TGI_BACKEND_GDI } |
图形后端类型 更多... | |
enum | TGI_Encoding { TGI_ENCODING_UTF8 , TGI_ENCODING_ANSI } |
文本编码类型 更多... | |
enum | TGI_WindowStyle { TGI_WINDOWSTYLE_WINDOW = 0 , TGI_WINDOWSTYLE_BORDER = 1 , TGI_WINDOWSTYLE_CAPTION = 2 , TGI_WINDOWSTYLE_RESIZE = 4 , TGI_WINDOWSTYLE_MINIMIZEBOX = 8 , TGI_WINDOWSTYLE_MAXIMIZEBOX = 16 , TGI_WINDOWSTYLE_DEFAULT } |
窗口风格类型 更多... | |
enum | TGI_FontStyle { TGI_FONTSTYLE_REGULAR = 0 , TGI_FONTSTYLE_BOLD = 1 , TGI_FONTSTYLE_ITALIC = 2 , TGI_FONTSTYLE_UNDERLINE = 4 , TGI_FONTSTYLE_STRIKEOUT = 8 } |
字体样式类型 更多... | |
enum | TGI_TextAlign { TGI_TEXTALIGN_LEFT = 0 , TGI_TEXTALIGN_CENTER = 1 , TGI_TEXTALIGN_RIGHT = 2 , TGI_TEXTALIGN_TOP = TGI_TEXTALIGN_LEFT , TGI_TEXTALIGN_BOTTOM = TGI_TEXTALIGN_RIGHT } |
字体对齐方法类型 更多... | |
函数 | |
static TGI_Color TGIAPI | tgi_color (unsigned char a, unsigned char r, unsigned char g, unsigned char b) |
创建一个ARGB颜色 | |
static void TGIAPI | tgi_application_free (TGI_Application *self) |
关闭应用并释放资源 | |
static void TGIAPI | tgi_application_exec (TGI_Application *self) |
启动应用的事件循环 | |
static int TGIAPI | tgi_application_exec_once (TGI_Application *self) |
处理一次应用事件 | |
static TGI_Window *TGIAPI | tgi_application_create_window (TGI_Application *self) |
创建一个窗口 | |
static TGI_Image *TGIAPI | tgi_application_create_image (TGI_Application *self, int width, int height) |
创建一个图片 | |
static TGI_Image *TGIAPI | tgi_application_create_image_from_file (TGI_Application *self, const char *filename) |
从文件创建一个图片 | |
static TGI_Font *TGIAPI | tgi_application_create_font (TGI_Application *self, const char *name, float size, TGI_FontStyle style) |
创建一个字体 | |
static TGI_Timer *TGIAPI | tgi_application_create_timer (TGI_Application *self, unsigned int delay, int type, void TGIAPI callback(TGI_Timer *timer)) |
创建一个计时器 | |
static void TGIAPI | tgi_window_free (TGI_Window *self) |
关闭窗口并释放资源 | |
static void TGIAPI | tgi_window_on_close (TGI_Window *self, int TGIAPI callback(TGI_Window *self)) |
设置窗口关闭时将会调用的函数 | |
static void TGIAPI | tgi_window_on_paint (TGI_Window *self, void TGIAPI callback(TGI_Window *self)) |
设置窗口需要绘制时将会调用的函数 | |
static void TGIAPI | tgi_window_on_size (TGI_Window *self, void TGIAPI callback(TGI_Window *self, float new_width, float new_height)) |
设置窗口改变大小时将会调用的函数 | |
static void TGIAPI | tgi_window_on_key (TGI_Window *self, void TGIAPI callback(TGI_Window *self, TGI_KeyEvent *event)) |
设置出现键盘事件时将会调用的函数 | |
static void TGIAPI | tgi_window_on_mouse (TGI_Window *self, void TGIAPI callback(TGI_Window *self, TGI_MouseEvent *event)) |
设置出现鼠标事件时将会调用的函数 | |
static int TGIAPI | tgi_window_is_key_down (TGI_Window *self, char key) |
判断键盘按键是否按下 | |
static void TGIAPI | tgi_window_show (TGI_Window *self) |
激活窗口并以当前大小和位置显示窗口 | |
static void TGIAPI | tgi_window_paint (TGI_Window *self) |
调用设置的 on_paint 回调函数 | |
static int TGIAPI | tgi_window_set_style (TGI_Window *self, TGI_WindowStyle style) |
设置窗口风格 | |
static int TGIAPI | tgi_window_set_size (TGI_Window *self, int width, int height) |
设置窗口的大小 | |
static int TGIAPI | tgi_window_get_size (TGI_Window *self, TGI_Rect *rect) |
获取窗口大小 | |
static int TGIAPI | tgi_window_set_min_size (TGI_Window *self, int width, int height) |
设置窗口的最大小大小 | |
static int TGIAPI | tgi_window_set_max_size (TGI_Window *self, int width, int height) |
设置窗口的最大大小 | |
static int TGIAPI | tgi_window_set_title (TGI_Window *self, const char *title) |
设置窗口的标题 | |
static TGI_Graphics *TGIAPI | tgi_window_create_graphics (TGI_Window *self) |
创建绘图对象 | |
static TGI_Image *TGIAPI | tgi_window_create_image (TGI_Window *self) |
创建与窗口关联的图像对象 | |
static void TGIAPI | tgi_graphics_free (TGI_Graphics *self) |
结束绘图并释放资源 | |
static int TGIAPI | tgi_graphics_clear (TGI_Graphics *self, TGI_Color color) |
绘制背景颜色 | |
static int TGIAPI | tgi_graphics_set_color (TGI_Graphics *self, TGI_Color color) |
设置画笔颜色 | |
static int TGIAPI | tgi_graphics_set_width (TGI_Graphics *self, float width) |
设置画笔宽度 | |
static int TGIAPI | tgi_graphics_draw_line (TGI_Graphics *self, float x1, float y1, float x2, float y2) |
绘制一条从(x1, y1)到(x2,y2)的直线 | |
static int TGIAPI | tgi_graphics_draw_arc (TGI_Graphics *self, float x, float y, float width, float height, float start_angle, float sweep_angle) |
绘制一条弧线 | |
static int TGIAPI | tgi_graphics_draw_rect (TGI_Graphics *self, float x, float y, float width, float height) |
绘制一个矩形 | |
static int TGIAPI | tgi_graphics_draw_ellipse (TGI_Graphics *self, float x, float y, float width, float height) |
绘制一个椭圆 | |
static int TGIAPI | tgi_graphics_draw_pie (TGI_Graphics *self, float x, float y, float width, float height, float start_angle, float sweep_angle) |
绘制一个扇形 | |
static int TGIAPI | tgi_graphics_draw_polygon (TGI_Graphics *self, const TGI_Point *points, int count) |
绘制一个多边形 | |
static int TGIAPI | tgi_graphics_fill_rect (TGI_Graphics *self, float x, float y, float width, float height) |
填充一个矩形 | |
static int TGIAPI | tgi_graphics_fill_ellipse (TGI_Graphics *self, float x, float y, float width, float height) |
填充一个椭圆 | |
static int TGIAPI | tgi_graphics_fill_pie (TGI_Graphics *self, float x, float y, float width, float height, float start_angle, float sweep_angle) |
填充一个扇形 | |
static int TGIAPI | tgi_graphics_fill_polygon (TGI_Graphics *self, const TGI_Point *points, int count) |
填充一个多边形 | |
static int TGIAPI | tgi_graphics_draw_image (TGI_Graphics *self, const TGI_Image *image, float x, float y) |
在指定的位置绘制一个图片 | |
static int TGIAPI | tgi_graphics_draw_image_rect (TGI_Graphics *self, const TGI_Image *image, float x, float y, float width, float height) |
在指定的矩形内绘制一个图片 | |
static int TGIAPI | tgi_graphics_draw_image_ex (TGI_Graphics *self, const TGI_Image *image, float x, float y, float src_x, float src_y, float src_width, float src_height) |
在指定的位置绘制图片的部分 | |
static int TGIAPI | tgi_graphics_draw_image_rect_ex (TGI_Graphics *self, const TGI_Image *image, float x, float y, float width, float height, float src_x, float src_y, float src_width, float src_height) |
在指定的位置绘制图片的部分 | |
static int TGIAPI | tgi_graphics_draw_text (TGI_Graphics *self, const char *text, const TGI_Font *font, float x, float y) |
在指定位置绘制文字 | |
static int TGIAPI | tgi_graphics_draw_text_rect (TGI_Graphics *self, const char *text, const TGI_Font *font, float x, float y, float width, float height) |
在指定矩形绘制文字 | |
static void TGIAPI | tgi_image_free (TGI_Image *self) |
释放图片资源 | |
static TGI_Image *TGIAPI | tgi_image_clone (TGI_Image *self) |
复制图片 | |
static int TGIAPI | tgi_image_get_size (TGI_Image *self, TGI_Rect *rect) |
获取图片大小 | |
static TGI_Graphics *TGIAPI | tgi_image_create_graphics (TGI_Image *self) |
开始在图片上绘图 | |
static void TGIAPI | tgi_font_free (TGI_Font *self) |
释放字体资源 | |
static int TGIAPI | tgi_font_set_align (TGI_Font *self, TGI_TextAlign align) |
设置横向的文本对齐方式 | |
static int TGIAPI | tgi_font_set_vertical_align (TGI_Font *self, TGI_TextAlign align) |
设置竖直方向的文本对齐方式 | |
static void | tgi_timer_free (TGI_Timer *self) |
关闭计时器并释放资源 | |
TGI_Application *TGIAPI | tgi_application_create (TGI_Backend backend, TGI_Encoding encoding) |
创建使用指定绘图后端的应用 | |
Tiny Graphics Interfaces
C语言的极简图形库
#define TGI_COLOR | ( | a, | |
r, | |||
g, | |||
b | |||
) | ((((TGI_Color)(a)) << 24) | (((TGI_Color)(r)) << 16) | (((TGI_Color)(g)) << 8) | ((TGI_Color)(b))) |
创建一个ARGB颜色
a | 透明度(0-255) |
r | 红色(0-255) |
g | 绿色(0-255) |
b | 蓝色(0-255) |
typedef struct TGI_Application TGI_Application |
typedef enum TGI_Backend TGI_Backend |
图形后端类型
typedef enum TGI_Encoding TGI_Encoding |
文本编码类型
typedef enum TGI_FontStyle TGI_FontStyle |
typedef struct TGI_Graphics TGI_Graphics |
图形对象类型
typedef struct TGI_KeyEvent TGI_KeyEvent |
键盘事件类型
typedef struct TGI_MouseEvent TGI_MouseEvent |
鼠标事件类型
typedef enum TGI_TextAlign TGI_TextAlign |
计时器对象类型
typedef struct TGI_Window TGI_Window |
窗口对象类型
typedef enum TGI_WindowStyle TGI_WindowStyle |
enum TGI_Backend |
enum TGI_Encoding |
enum TGI_FontStyle |
字体样式类型
枚举值 | |
---|---|
TGI_FONTSTYLE_REGULAR | 标准 |
TGI_FONTSTYLE_BOLD | 加粗 |
TGI_FONTSTYLE_ITALIC | 斜体 |
TGI_FONTSTYLE_UNDERLINE | 下划线 |
TGI_FONTSTYLE_STRIKEOUT | 删除线 |
enum TGI_TextAlign |
字体对齐方法类型
枚举值 | |
---|---|
TGI_TEXTALIGN_LEFT | 靠左 |
TGI_TEXTALIGN_CENTER | 居中 |
TGI_TEXTALIGN_RIGHT | 靠右 |
TGI_TEXTALIGN_TOP | 靠上 |
TGI_TEXTALIGN_BOTTOM | 靠下 |
enum TGI_WindowStyle |
窗口风格类型
TGI_Application *TGIAPI tgi_application_create | ( | TGI_Backend | backend, |
TGI_Encoding | encoding | ||
) |
创建使用指定绘图后端的应用
backend | 需要使用的图形后端 |
encoding | 需要使用的编码方式 |
|
inlinestatic |
|
inlinestatic |
创建一个图片
self | 应用对象指针 |
width | 图片的宽度(单位为真实像素) |
height | 图片的高度(单位为真实像素) |
|
inlinestatic |
从文件创建一个图片
self | 应用对象指针 |
width | 图片的宽度(单位为真实像素) |
height | 图片的高度(单位为真实像素) |
|
inlinestatic |
创建一个计时器
self | 应用对象指针 |
delay | 延时(单位为毫秒) |
type | 若为0,则在delay毫秒后调用回调函数;否则,在每隔delay毫秒调用一次回调函数 |
callback | 回调函数 |
|
inlinestatic |
|
inlinestatic |
启动应用的事件循环
self | 应用对象指针 |
|
inlinestatic |
处理一次应用事件
self | 应用对象指针 |
|
inlinestatic |
关闭应用并释放资源
self | 应用对象指针 |
|
inlinestatic |
创建一个ARGB颜色
|
inlinestatic |
释放字体资源
self | 字体对象指针 |
|
inlinestatic |
设置横向的文本对齐方式
self | 字体对象指针 |
align | 文本对齐方式 |
|
inlinestatic |
设置竖直方向的文本对齐方式
self | 字体对象指针 |
align | 文本对齐方式 |
|
inlinestatic |
绘制背景颜色
self | 绘图对象指针 |
color | 颜色 |
|
inlinestatic |
绘制一条弧线
self | 绘图对象指针 |
x | 圆弧所在椭圆的外切矩形的左上角x坐标 |
y | 圆弧所在椭圆的外切矩形的左上角y坐标 |
width | 圆弧所在椭圆的外切矩形的宽度 |
height | 圆弧所在椭圆的外切矩形的高度 |
start_angle | 圆弧起始角的角度 |
sweep_angle | 圆弧终止角的角度 |
|
inlinestatic |
绘制一个椭圆
self | 绘图对象指针 |
x | 椭圆的外切矩形的左上角x坐标 |
y | 椭圆的外切矩形的左上角y坐标 |
width | 椭圆的外切矩形的宽度 |
height | 椭圆的外切矩形的高度 |
|
inlinestatic |
在指定的位置绘制一个图片
self | 绘图对象指针 |
image | 图片对象指针 |
x | 表示图片左上角的x坐标 |
y | 表示图片左上角的y坐标 |
|
inlinestatic |
在指定的位置绘制图片的部分
self | 绘图对象指针 |
image | 图片对象指针 |
x | 表示图片左上角的x坐标(单位为逻辑像素) |
y | 表示图片左上角的y坐标(单位为逻辑像素) |
src_x | 表示截取图片左上角的x坐标(单位为真实像素) |
src_y | 表示截取图片左上角的y坐标(单位为真实像素) |
src_width | 表示截取图片的宽度(单位为真实像素) |
src_height | 表示截取图片的高度(单位为真实像素) |
|
inlinestatic |
在指定的矩形内绘制一个图片
self | 绘图对象指针 |
image | 图片对象指针 |
x | 表示图片左上角的x坐标 |
y | 表示图片左上角的y坐标 |
width | 表示绘制的宽度 |
height | 表示绘制的高度 |
|
inlinestatic |
在指定的位置绘制图片的部分
self | 绘图对象指针 |
image | 图片对象指针 |
x | 表示绘制左上角的x坐标(单位为逻辑像素) |
y | 表示绘制左上角的y坐标(单位为逻辑像素) |
width | 表示绘制的宽度(单位为逻辑像素) |
height | 表示绘制的高度(单位为逻辑像素) |
src_x | 表示截取图片左上角的x坐标(单位为真实像素) |
src_y | 表示截取图片左上角的y坐标(单位为真实像素) |
src_width | 表示截取图片的宽度(单位为真实像素) |
src_height | 表示截取图片的高度(单位为真实像素) |
|
inlinestatic |
绘制一条从(x1, y1)到(x2,y2)的直线
self | 绘图对象指针 |
x1 | 直线起点的x坐标 |
y1 | 直线起点的y坐标 |
x2 | 直线终点的x坐标 |
y2 | 直线终点的y坐标 |
|
inlinestatic |
绘制一个扇形
self | 绘图对象指针 |
x | 扇形所在椭圆的外切矩形的左上角x坐标 |
y | 扇形所在椭圆的外切矩形的左上角y坐标 |
width | 扇形所在椭圆的外切矩形的宽度 |
height | 扇形所在椭圆的外切矩形的高度 |
start_angle | 扇形起始角的角度 |
sweep_angle | 扇形终止角的角度 |
|
inlinestatic |
绘制一个多边形
self | 绘图对象指针 |
points | 表示多边形顶点的数组 |
count | 多边形点的数目 |
|
inlinestatic |
绘制一个矩形
self | 绘图对象指针 |
x | 矩形的左上角x坐标 |
y | 矩形的左上角y坐标 |
width | 矩形的宽度 |
height | 矩形的高度 |
|
inlinestatic |
在指定位置绘制文字
self | 绘图对象指针 |
text | 要绘制的字符串 |
font | 绘制的字体 |
x | 表示绘制位置的x坐标 |
y | 表示绘制位置的y坐标 |
|
inlinestatic |
在指定矩形绘制文字
self | 绘图对象指针 |
text | 要绘制的字符串 |
font | 绘制的字体 |
x | 表示绘制矩形左上角的x坐标 |
y | 表示绘制矩形左上角的y坐标 |
width | 表示绘制矩形的高度 |
height | 表示绘制矩形的宽度 |
|
inlinestatic |
填充一个椭圆
self | 绘图对象指针 |
x | 椭圆的外切矩形的左上角x坐标 |
y | 椭圆的外切矩形的左上角y坐标 |
width | 椭圆的外切矩形的宽度 |
height | 椭圆的外切矩形的高度 |
|
inlinestatic |
填充一个扇形
self | 绘图对象指针 |
x | 扇形所在椭圆的外切矩形的左上角x坐标 |
y | 扇形所在椭圆的外切矩形的左上角y坐标 |
width | 扇形所在椭圆的外切矩形的宽度 |
height | 扇形所在椭圆的外切矩形的高度 |
start_angle | 扇形起始角的角度 |
sweep_angle | 扇形终止角的角度 |
|
inlinestatic |
填充一个多边形
self | 绘图对象指针 |
points | 表示多边形顶点的数组 |
count | 多边形点的数目 |
|
inlinestatic |
填充一个矩形
self | 绘图对象指针 |
x | 矩形的左上角x坐标 |
y | 矩形的左上角y坐标 |
width | 矩形的宽度 |
height | 矩形的高度 |
|
inlinestatic |
结束绘图并释放资源
self | 绘图对象指针 |
|
inlinestatic |
设置画笔颜色
self | 绘图对象指针 |
color | 颜色 |
|
inlinestatic |
设置画笔宽度
self | 绘图对象指针 |
width | 宽度 |
|
inlinestatic |
|
inlinestatic |
释放图片资源
self | 图片对象指针 |
获取图片大小
self | 图片对象指针 |
rect | 指向 TGI_Rect 对象的指针 |
|
inlinestatic |
关闭计时器并释放资源
self | 计时器对象指针 |
|
inlinestatic |
|
inlinestatic |
创建与窗口关联的图像对象
self | 窗口对象指针 |
|
inlinestatic |
关闭窗口并释放资源
self | 窗口对象指针 |
|
inlinestatic |
获取窗口大小
self | 窗口对象指针 |
rect | 指向 TGI_Rect 对象的指针 |
|
inlinestatic |
判断键盘按键是否按下
self | 窗口对象指针 |
key | 表示键盘按键的ASCII码 |
|
inlinestatic |
设置窗口关闭时将会调用的函数
self | 窗口对象指针 |
callback | 回调函数 |
|
inlinestatic |
设置出现键盘事件时将会调用的函数
self | 窗口对象指针 |
callback | 回调函数 |
|
inlinestatic |
设置出现鼠标事件时将会调用的函数
self | 窗口对象指针 |
callback | 回调函数 |
|
inlinestatic |
设置窗口需要绘制时将会调用的函数
self | 窗口对象指针 |
callback | 回调函数 |
|
inlinestatic |
设置窗口改变大小时将会调用的函数
self | 窗口对象指针 |
callback | 回调函数 |
|
inlinestatic |
调用设置的 on_paint 回调函数
self | 窗口对象指针 |
|
inlinestatic |
设置窗口的最大大小
self | 窗口对象指针 |
width | 窗口的最大宽度 |
height | 窗口的最大高度 |
|
inlinestatic |
设置窗口的最大小大小
self | 窗口对象指针 |
width | 窗口的最小宽度 |
height | 窗口的最小高度 |
|
inlinestatic |
设置窗口的大小
self | 窗口对象指针 |
width | 窗口的新宽度 |
height | 窗口的新高度 |
|
inlinestatic |
设置窗口风格
self | 窗口对象指针 |
style | 窗口风格 |
|
inlinestatic |
设置窗口的标题
self | 窗口对象指针 |
title | 窗口的新标题 |
|
inlinestatic |
激活窗口并以当前大小和位置显示窗口
self | 窗口对象指针 |