主页->关于

Easy Graphics Engine

相关信息:


作者:misakamm
Blog:http://misakamm.com
Mail:misakamm@gmail.com

更新历史:


版本更新日志
 20.08 
 新增功能 
 1.  [2019-10-26] 提供对 VS2019 的支持
 2.  [2019-10-26] 引入 CMAKE 构建系统,支持 MSVC 系列和 MinGW-W64 版本编译器
 3.  [2020-04-14] 在 key_code_e 中新增小键盘符号键键码
 4.  [2020-04-25] 新增使用 ARGB 的 ege_drawtext() 文本输出函数
 5.  [2020-04-28] 支持加载 PNG 资源文件
 6.  [2020-05-13] 新增 movewindow() 和 resizewindow() 函数,用于调整窗口大小和位置
 7.  [2020-05-13] 新增 getHDC() 函数,支持获取图像及窗口帧缓冲区的 HDC 句柄
 8.  [2020-05-13] 新增 getGraphicsVer(),获取 ege 库版本
 9.  [2020-06-27] 新增 seticon() 函数,支持通过传入图标资源 ID 设置 EGE 窗口图标,可在 initgraph() 之前调用
 10. [2020-06-27] 新增 INIT_UNICODE 初始化模式,允许创建 Unicode 窗口
 11. [2020-07-02] 新增不创建窗口而直接对图像进行绘图的功能,可在 initgraph() 之前调用 newimage()
 12. [2020-07-07] 新增 putimage_alphafilter() 函数
 13. [2020-07-26] 新增 putpixel_withalpha/putpixel_withalpha_f 绘制带透明通道像素点
 14. [2020-07-26] 新增 alphablend() ARGB 颜色混合函数
 15. [2020-08-12] 添加 LGPL 开源许可证
 
功能变更:
 1.  [2020-04-06] 项目内移除 gdiplus 依赖
 2.  [2020-05-19] 使用 Simsun(宋体)作为默认字体
 3.  [2020-07-02] 创建图像或调用 resize 时,支持将图像宽高设置为 0
 4.  [2020-07-03] resize() 不自动对图像以背景色填充,以提高效率
 5.  [2020-07-04] EGERGB() 宏生成的 RGB 颜色透明通道由 0 改为 255
 6.  [2020-07-07] putimage_withalpha(), putimage_alphablend(), putimage_alphatransparent() 使用误差更小的 Alpha 通道混合算法
 7.  [2020-07-07] putimage_transparent() 改为仅比较 RGB 通道,忽略 Alpha 通道
 8.  [2020-07-19] 为 getimage() 增加 NULL 参数检查
 9.  [2020-07-26] color_t 的定义由 unsigned int 改为 DWORD(unsigned long)
 10. [2020-07-26] initgraph() 不使用默认参数而改为两个重载
 
错误修复:
 1. [2019-02-02] 修复无法接收到 key_msg_char 类型消息的错误
 2. [2019-02-04] 修复 putimage_xxx 系列函数在裁剪区域外绘图的错误
 3. [2020-03-19] 修复绘图图像时绘制区域比裁剪区域小 1 行 1 列的计算错误
 4. [2020-04-12] 修复 clearviewport() 使用填充颜色对视口区域进行清除的错误
 5. [2020-04-13] 修复 setlinewidth() 无法立即生效,需要等到 setcolor() 调用 才生效的错误
 6. [2020-04-13] 修复 setlinestyle() 自定义样式不正确的错误
 7. [2020-04-13] 修复 ege_setalpha() 传入 NULL 参数时会发生崩溃的错误
 8. [2020-04-25] 修复当使用由 GDI 实现的绘图函数时,如果设置的颜色中 Alpha 值不为 0 会出现图形颜色不正常的错误
 9. [2020-05-19] 修复 getfont() 中,在 LOGFONTW 环境下使用 LOGFONTA 的错误
 19.01 
 1. 增加对 VS2017 的支持
 2. 修复在 Windows 1809 及之后的版本上发生崩溃的错误 
 15.04 
 1.修正重绘时资源泄露的 bug
 2.文档和部分函数细节调整,增加对 VC2013 的支持,增加对 VC2015 的支持
 3.调整发布目录和编译脚本命名
 13.04 
 1.文档和部分函数细节调整,调整默认支持的编译器
 13.03 
 1.画圆/椭圆/弧函数增加浮点版本
 2.填充函数增加按颜色区域填充(类似画图的油漆桶功能)
 3.修正 IMAGE 初始化背景色不是纯黑色
 4.修正第二次 initgraph 的状态错误
 5.源代码结构细调,抽离数据结构实现
 13.02 
 1.图形效率优化
 2.getch 特殊键响应不正常修正
 3.修正 keystate 状态错误
 13.01 
 1.对 mouse_msg 友好化
 12.12 
 1.增加 putimage_withalpha
 2.修正 ege_puttexture 贴图 bug
 12.11 
 1.增加对 VC2012 的支持
 2.发布文件分类方式调整
 12.08 
 1.delay_fps/delay_jfps 增加浮点帧率支持
 2.修正文档已知错误
 12.06 
 1.新增函数 xyprintf/rectprintf
 2.修正 png 处理 alpha 为 0 的像素的方案
 3.修正对带 alpha 的图片的贴图支持
 4.增加离线示例和在线示例
 5.vs2010 编译错误修正
 6.rgb2gray 函数修正
 12.05 
 1.inputbox_getline 函数修正
 2.mousemove 消息参数修正
 3.增加发布包中的示例
 12.04 
 1.库函数调整较大,去除所有大写字母开头的函数,旧程序基本都需要改动才能正常编译
 2.mingw 编译参数有变,增加链接库 msimg32
 3.不允许使用 IMAGE,全部改用 PIMAGE,使用 newimage/delimage 构造和删除
 4.颜色全部统一为 ARGB 格式,不要使用宏 RGB,要用 EGERGB 代替(否则红蓝颠倒)
 5.增加带 Anti-aliasing 的绘图
 6.增加渐变填充
 7.增加纹理概念,增加简单的纹理贴图
 8.修正若干 bugs(主要的是鼠标移动消息参数不正确)
 9.文档增加动画示例
 10.增加支持 64 位静态库(仅vc9/vc10)
 11.去除原有的编译警告
 12.增加部分函数过时警告,不屏蔽 vs 的过时警告
 13.示例代码更新及增加
 14.增加邮件列表通讯讨论 https://lists.sourceforge.net/lists/listinfo/tcgraphics-faqs
 12.03 
 1.调整版本命名方式(年.月,像12.03即12年三月发布)
 2.调整编译参数
 3.默认标题风格调整
 4.源代码目录结构调整
 2012-01-07 
 1.对objc++编译做兼容
 2.部分函数风格调整
 3.增加控件 button(未完善,测试版)
 2011-07-24 
 1.Bug 修正
 2.解决在 vs2010 下编译不正确的问题
 3.fix 在 linux wine下窗口移动困难的问题
 2011-06-02 
 1.增加 GUI
 2.修正部分 png 读取错误
 3.调整 getkey 函数,增加配对的 kbmsg 函数
 4.增加 getmouse 函数
 5.增加 setcaption 函数
 6.版本更新为20110602 V1.0.1 Beta
 2011-05-20 
 1.调整头文件,以使兼容性更好,减少链接出错
 2.GetFPS 函数去掉参数
 3.版本更新为20110520 V0.3.8 Release
 2011-04-16 
 1.增加 png 图片格式的读写函数(读取仍然用 getimage,保存用 savepng)
 2.增加压缩解压函数(ege_compress/ege_uncompress/ege_uncompress_size)
 3.版本更新为20110416 V0.3.8 Beta
 2011-04-14 
 1.修正拖动时,窗口可能会漂移的问题
 2.重绘效率优化
 3.增加 INIT_LOCKWINDOW
 4.批量绘图函数改名为窗口锁定函数(WindowLock/WindowUpdate/WindowUnlock),原函数仍然能使用
 5.IMAGE 类增加 getdc 接口以便 GDI 操作(仅可用于Blt操作其它操作慎用)
 6.VC6库改用/MT编译以便多线程编程
 7.版本更新为20110414 V0.3.7 Release
 2011-04-01 
 1.增加 drawlines 和 drawbezier 函数,优化 drawpoly 的效率
 2.增加对设置为屏幕保护程序的支持
 3.增加安装程序
 4.增加 WM_MOUSEWHEEL 宏定义以防在 VC6 上编译出错
 5.文档更新
 6.版本更新为20110401 V0.3.6 Release
 2011-03-21 
 1.更名为 EGE,取代原 EGE(Easy Graphics Engine) 库
 2.增加旋转缩放贴图函数(接口还可能变化,暂不推荐使用)
 3.增加窗口尺寸自动修正(在分辨率变小强制窗口尺寸变小了,再变回大分辨率的时候)
 4.版本更新为20110321 V0.3.5 Release
 2011-01-29 
 1.修正头文件一个类型错误的问题
 2.增加saveimage函数,用来保存图片(目前只支持bmp)
 3.版本号更新为20110129 V0.3.4 Release
 2010-12-13 
 1.增加对基本音频播放的支持(wav, mp3, midi)
 2.版本号更新为20101213 V0.3.3 Release
 2010-12-12 
 1.更新文档
 2.增加独立下载库和帮助文档
 3.版本号更新为20101207 V0.3.2 Release
 2010-12-07 
 1.修正图形更新同步时可能偶然发生无法更新的情况
 2.增加 setbkcolor_f 函数,功能是仅设置背景颜色,
   仅当调用 cleardevice 时才使用这个颜色一次性清除屏幕
 3.提升了重绘性能,并修正一个资源泄露的问题
 4.增加 swappage 函数,实现双缓冲模式
 2010-11-22 
 1.调整 GetMousePos 初始化坐标
 2.修正鼠标滚轮坐标不正确的问题
 3.随机函数改用专业算法,并增加 randomf 函数
 4.增加 3D 数学函数
 5.增加 3D 向量类
 6.修正文档错误,补充没加到文档的函数
 7.版本号改为20101122 V0.3.1 Release
 2010-11-18 
 1.修正了三个新贴图函数的 BUG
 2.增加了 outtextrect, setfontbkcolor
 3.增加了 logo 显示
 4.修正鼠标消息接收时内容不全的问题
 5.修正多次开关批量绘图时可能会卡死的 BUG
 6.相应更新文档
 7.版本号改为20101118 V0.3.0 Release
 2010-11-13 
 1.对 imagefilter_blurring 函数调整参数次序,并增加默认参数,以使其使用更方便
 2.优化透明,半透明贴图效率
 2010-11-11 
 1.增加三个函数支持透明/半透明贴图 (putimage_transparent, putimage_alphablend, putimage_alphatransparent)
 2.增加图像模糊函数 (imagefilter_blurring)
 3.版本号改为20101111 V0.2.5 Gamma
 2010-11-01 
 1.调整 putpixels,使得效率更高一些
 2.修正部分绘图函数如 rectangle 不空心的 BUG
 3.增加 INITGRAPH 宏,以便于使用全局 IMAGE 时,抢先初始化
 4.相应更新文档
 5.版本号改为 20101101 V0.2.4 Gamma
 2010-10-23 
 1.增加 putpixels 函数,便于批量画点时提升速度
 2.修正setbkcolor函数颜色不正确的BUG
 2010-10-13 
 1.增加 GetHInstance 函数,以便作为读入资源时的参数
 2.调整 closegraph,以便 close 后再次 init
 3.修正 setviewport 在某个版本里误编辑的问题导致区域失效
 4.textwidth 和 textheight 增加单字符版本
 5.修正总是隐藏控制台无法故意显示的问题
 6.增加 KEYMSG_FIRSTDOWN,便于实现按键按下一次仅响应一次的需求
 7.修正相应的俄罗斯方块例子(因增加了 KEYMSG_FIRSTDOWN 的原因)
 2010-10-10 
 1.增加 ShowMouse 函数,以控制鼠标是否隐藏
 2.增加对 VC2005 的支持(不带 SP1,打了 SP1 的不能编译通过,其实为了更稳定建议直接用 VC2008)
 3.增加 IMAGE 对象有效性检查,以便更容易发现指针错误
 4.相应更新文档,并修正文档中部分已发现的问题
 5.调整 initgraph,允许二次调用,并修改窗口大小(这时原内容会擦除,但除了 size 和 viewport 以外,其它属性不变)
 6.修正批量画图多次调用时可能发生的死锁问题
 7.增加初始化 IMAGE 在 initgraph 之前会直接报错并强制关闭程序
 8.版本号改为 20101010 V0.2.2 Gamma
 2010-09-30 
 1.调整 delay_fps,使得帧数更稳定些
 2.修正 getch, kbhit 带参数时的一些问题
 3.改为使用 SHOW_CONSOLE 才显示控制台窗口,默认不显示,详见 PDF 内“超简单的使用预览”
 4.增加 getpixel_f, putpixel_f,为原函数的加速版(但调用时有风险,但其实原来的已经足够快,现在的已经快不了多少)
 5.增加 API_Sleep 函数用于调用原来的原版 Sleep 函数
 6.增加 delay_jfps 用于自动控制跳帧(跳多少看流畅程度,如果绘图不复杂计算量少,一般不会跳)
 7.GetFPS 函数增加一个可选参数,以便得到实际绘图帧率(在跳帧模式下)
 8.增加一些方便在 CFree 下编程的特性,如 WinMain,详见 PDF 内“超简单的使用预览”
 9.基本完成 pdf,并加入了几个比较好的程序源代码,包含一个俄罗斯方块程序
 10.版本名改为 20101001  V0.2 Gamma
 2010-09-28 
 1.前一次修改后对效率的调整和优化
 2.修正 InputBoxGetLine, getch, GetMouseMsg 的 BUG
 3.调整延迟函数的逻辑,使得在相同帧率下能更流畅
 4.增加 fclock 函数
 5.增加 mingw3.4.5 编译器使用的静态库,即能支持在 CFree 下编译
 6.增加 pdf 格式的说明文档(测试版,部分函数还没有补充完成)
 7.版本名改为 0.2 Beta
 2010-09-26 
 1.大幅修改,使程序不会因为鼠标拖动而停下
 2.即使不调用 delay 族函数也会更新窗口,只是并不流畅,所以如果你想要流畅动画,推荐手工调用 delay 族函数
 3.增加 GetFPS 函数,可以随时获取当前帧率
 4.GetLineInputBox 更名为 InputBoxGetLine,以便于增加类似 InputBoxGetNumber 时,相同前缀容易查找
 5.getch 和 kbhit 改为宏,以防与 conio.h 库冲突,当包含 conio.h 时,会自动忽略
 6.版本名改为 0.2 Alpha
 注:delay 族函数在 graphics.h 头文件的最顶处有相关的说明,就是指 Sleep, delay, delay_ms, delay_fps, getch, GetMouseMsg
 2010-09-23 
 1.修正 getch 的行为,以保持非特殊按键键码与 CRT(C Run-Time) 的 getch 一致
 2010-09-22 
 1.增加 GetLineInputBox 在图形界面下进行字符串输入,使用回车确认输入,ESC 取消输入(输入为空)
 2.扩展 getch 和 kbhit 函数,使得能根据参数把按键放开的事件也能取得,两个函数需要组合使用
 2010-09-21 
 1.增加 void setinitmode(int mode, int x = CW_USEDEFAULT, int y = CW_USEDEFAULT)
 第一个参数 mode = 0 为普通窗口,1 为无边框窗口,xy 是初始窗口坐标,mode 为 1 时,用于方便全屏模式
 此函数必须在 initgraph 前调用,否则无效
 2.initgraph 函数,若窗口大小均指定为 -1,-1,则使用屏幕大小,用于方便全屏,全屏后可用 getwidth 和 getheight 取得窗口大小
 3.VC 下使用 HIDE_CONSOLE 可以使控制台窗口彻底消失,使用方法如下:
 #define HIDE_CONSOLE
 #include <graphics.h>
 要注意的是,#define HIDE_CONSOLE 必须在 graphics.h 的前面
 4.改为Beta版本
 2010-09-20 
 1.修正若干 BUG
 2010-09-18 
 1.第一版发布测试