EGE 下载
ege 25.11 已发布! 查看改进: https://xege.org/ege-25-11.html
站内下载地址(在下方链接上右键点击选择”另存为”)
- ege25.11(推荐,支持 VS2010-VS2026+ 以及 DevCpp、CodeBlocks 等,支持基于 MinGW-W64 的 macOS 以及 Debian/Ubuntu)
ege24.04(旧版本,如遇问题可回退)VC6.0 免安装包,内置 ege24.04,可直接使用
下载编译好的库下载:
- git(项目就是安装包, 直接下载整个项目):
- Gitee: https://gitee.com/xege/xege-sdk
- Github: https://github.com/x-ege/xege-sdk
- 网盘下载(安装包):
源码下载:
其他下载:
历史版本下载
安装教程
网友教程
- 依稀的 EGE 安装与配置教程(强烈推荐,更新中)
- 小熊猫 C++ 中 EGE 使用教程(使用上面推荐的小熊猫 C++ 整合版用户看这个)
- 小龙 Dev-C++ 中 EGE 使用说明(使用上面推荐的小龙 Dev-C++)
- 徐司机的教程(2019 年以前版本的 Code::Blocks 用户看这个)
官方教程
支持的开发环境
EGE 支持以下 开发工具/编译器:
| 编译器/IDE | 版本支持 | 备注 |
|---|---|---|
| Visual Studio | 2017 ~ 2026 | ✅ 推荐,支持 C++17 全部特性 强烈建议使用最新版本 (2026) |
| CLion | 支持 | ✅ 推荐 可配合 XEGE 插件 迅速上手 |
| VS Code | 支持 | ✅ 推荐 可配合 EGE 插件 迅速上手 |
| 小熊猫 C++ | 支持 | ✅ 推荐 已内置 EGE, 下载即可用 |
| Code::Blocks | 支持 | 已测试版本: 25.03 (最新) |
| MinGW / MinGW-w64 | 支持 | ✅ 支持, SDK 发布时会基于最新版本进行测试 |
| 老版本 Visual Studio | 2010 ~ 2015 | ⚠️ 支持,但不推荐(不支持 C++17) |
| Visual C++ 6.0 | aka vc6.0 | ⚠️ 旧版支持,可从官网下载内嵌版本 |
| Dev-C++ | 支持 | ⚠️ 十年未更新, 不那么推荐 已测试版本: 5.11 (最新) |
| Eclipse for C/C++、 C-Free 等 | 支持 | ⚠️ 需自行配置 |
IDE 插件
EGE 提供官方 IDE 插件,让项目配置更加简单:
| IDE | 插件 | 安装方式 | 功能 |
|---|---|---|---|
| CLion | XEGE Creator | Settings → Plugins → Marketplace 搜索 “XEGE Creator” |
一键创建项目、CMake 自动配置、多平台支持 |
| VS Code | EGE | 扩展面板搜索 “ege” | 一键创建项目、单文件编译运行、跨平台支持 |
CLion 插件使用
- 安装插件后,点击
File → New → Project... - 在左侧项目类型列表中选择 EGE
- 配置项目名称和位置,选择是否使用源码模式
- 点击
Create即可生成可运行的 EGE 项目
VS Code 插件使用
- 安装插件后,打开命令面板(
Ctrl+Shift+P) - 输入
EGE:查看可用命令:EGE: 在当前工作区设置 ege 项目– 使用预编译库创建项目EGE: 在当前工作区设置带有 EGE 源代码的 ege 项目– 使用源码创建项目EGE: 构建并运行当前文件– 快速编译运行单个 cpp 文件
- 插件支持 Windows、macOS(需 mingw-w64 + wine)和 Linux
更多详情请访问插件主页:CLion 插件 | VS Code 插件
IDE 下载
Visual Studio 下载
https://visualstudio.microsoft.com/zh-hans/downloads/
DevCpp
- 小熊猫 C++
- DevCpp 5.11 – 官方下载:https://sourceforge.net/projects/orwelldevcpp/
- DevCpp 5.11 – xege.org 镜像下载:http://xege.org/download/Dev-Cpp_5.11_TDM-GCC_4.9.2_Setup.exe
25.11 新版发布
新增功能
- 增加相机捕获功能,基于 ccap 提供相机驱动,新增
ege::Camera类,支持在 C++17 及以上的编译器中使用 - 增加鼠标双击检测支持,新增
mouse_msg::is_doubleclick()方法 - 增加鼠标扩展键的检测(如 XBUTTON1、XBUTTON2)
- 增加
ege::measuretext()函数用于测量ege_前缀函数绘制的文本宽高 - 增加
ege::image_convertcolor()函数用于转换图像像素的颜色类型 - 增加快速检测按键动作的函数
keypress()、keyrelease()、keyrepeat() - 增加
ege/types.h头文件,提供基础类型定义 - 增加
kbhit_console()函数,与getch_console()配套使用 - 新增
ege_compress_bound()函数用于获取压缩数据的最大长度 - 新增
color_type枚举,用于指定图像像素的颜色类型
改进
- 使用
stb_image替代libpng解析图像文件,支持更多图像格式(PNG、JPEG、BMP、GIF、TGA、PSD、HDR、PIC、PNM) - 使用轻量的
sdefl/sinfl库替代zlib实现数据压缩/解压,移除libpng和zlib依赖 - 图像像素默认颜色格式由
ARGB32改为PRGB32(预乘 Alpha),提升渲染效率 color_t类型调整为uint32_t,提高代码一致性- C++ 标准不低于 C++11 时,颜色枚举
COLORS底层类型设置为uint32_t ege_系列文本输出函数的坐标参数类型由int改为float,支持更精细的定位- 图像读取和保存返回更详细的错误信息,增加
grInvalidFileFormat和grUnsupportedFormat错误码 - 增加对 Visual Studio 2026 的支持
- 优化项目配置,在编译器支持 C++17 时自动开启 C++17,并定义宏
EGE_ENABLE_CPP17=1 - 优化静态库编译参数,同时支持
/MD和/MT编译 ege.h提供双语版本(英文版为默认版本,中文版ege.zh_CN.h主要用于生成文档)
修复
- 修复垂直方向对齐对
ege_文本绘制函数无效的问题 - 修复调用
resizewindow()后图形出现偏移和被裁剪的问题 - 修复
resizewindow()后视口未进行调整的问题 - 修复
ege_fillroundrect()单圆角半径参数重载无法在指定图像中绘制的问题 - 修复使用
lineto()前未调整当前点的问题 - 修复
bar3d()图形在线条连接点处有突出,以及在图形堆叠时存在重复边的问题 - 修复自动渲染模式下长时间无绘制操作时不触发刷新的问题
- 修复
IMAGE::gentexture()会引发栈溢出的问题 - 修复调用
delay_ms()时出现帧率误差较大的问题 - 修复
getpixel_f()和putpixels_f()声明和定义不一致的问题 - 修复
MUSIC需要依赖initgraph()初始化的问题 - 修复部分函数使用
ege_transform_matrix参数做变换时崩溃的问题 - 修复
ege/button.h中调用setfillstyle()时参数位置错误的问题 - 纠正
PIMAGE和PCIMAGE的错误混用
调整
alpha_type枚举值顺序调整:ALPHATYPE_PREMULTIPLIED现为 0,ALPHATYPE_STRAIGHT为 1putimage_alphablend系列函数的参数由alpha_type改为color_type,默认值为COLORTYPE_PRGB32- 数据压缩相关函数签名调整,参数类型由
unsigned long改为uint32_t keystate()返回值改为bool类型,参数无效时返回falsekbmsg()、kbhit()在运行环境退出后的返回值由-1改为0,防止阻塞- 非阻塞或非延时函数不再触发窗口刷新
flushmouse()、flushkey()不再触发窗口刷新- 调整初始化环境之前所返回的颜色值,允许预先设置窗口背景色
graphics_errors数值改为十进制格式,便于调试
新增示例
- 新增五子棋游戏 Demo(支持简单 AI 对战、落棋音效、抗锯齿棋子)
- 新增排序可视化 Demo
- 新增蒙特卡洛法绘制二元函数图像 Demo
- 新增相机波浪效果 Demo
24.04 新版发布
配置变更
- 库文件名统一为
graphics.lib或libgraphics.a - 在 GCC 中使用 EGE 库时,需要链接
libgraphics.a、libgdi32.a、libgdiplus.a库,参数为-lgraphics -lgdi32 -lgdiplus
新特性
- 新增
EGE_VERSION、EGE_VERSION_NUMBER等版本相关的宏 - 提供 Linux/macOS 下的编译支持(使用 MinGW-W64 工具链)
- 新增
putimage_rotatetransparent(),支持指定透明色旋转绘制图像 - 新增
putpixel_savealpha()(写入像素时保留原来的 alpha 值) - 新增
putpixel_alphablend()(使用 alpha 混合公式写入像素) - 新增
ege_drawimage(),用于绘制带透明通道图像(支持坐标变换、拉伸) - 新增控制台系列相关函数(不支持 VC++ 6.0)
- 新增圆角矩形系列函数、填充圆系列函数、饼形系列函数、闭合曲线系列函数、填充矩形
fillrect() - 新增无边框填充的普通图形函数
- 新增与
drawpoly()相似但更明确的polyline()(折线)、polygon()(多边形) - 新增路径图形
- 支持保存带透明通道的 BMP 图片,新增保存 BMP 格式图片的
savebmp()函数 - 新增
key_A和key_Z中间的键码定义 - 新增更多预定义颜色
- 新增按键标志位
key_flag_first_down,指示按键按下时发送的第一次 down 消息 - 新增
showwindow()、hidewindow()函数,用于控制窗口显示/隐藏 - 新增
INIT_HIDE初始化模式,使窗口创建后不可见(调用showwindow()显示窗口) - 支持在 EGE 中使用 UTF-8 字符串
- 新增用于刷新窗口的
flushwindow()函数,确保显示绘图内容 - 提供对 VS2022 的支持
putimage_withalpha()支持缩放ege_系列绘图函数支持设置线型(由setlinestyle()设置)MUSIC类增加RepeatPlay(),支持循环播放- 新增 alpha 颜色混合计算函数:
alphablend()(标准公式)、colorblend()(保留目标颜色的 alpha 值)、alphablend_premultiplied()(预乘 alpha 格式) - 支持设置线帽和线条连接样式
randomize()支持传入随机数种子,并且会返回所使用的随机数种子- 新增
ege_系列使用 ARGB 颜色的单行文本输出函数:ege_xyprintf()、ege_outtextxy() - 支持对使用预乘 alpha 像素格式的图像进行混合
- 支持设置和获取 EGE 所使用的代码页
ege_系列高级绘图函数支持坐标变换- 支持独立设置和获取线条颜色和文本颜色
修复 BUG
- 修复
inputbox_getline()界面发黑的问题(20.08 引入) - 修复
sector()函数在半径小于等于 20 时出现绘制错误的问题 - 修复
drawpoly()绘制闭合多边形时首尾连接点无拐角的问题 - 修复
setinitmode()无法改变窗口位置的问题(20.08 引入) - 修复初始化后
initgraph(-1, -1)无法将窗口大小设置为全屏的问题 - 修复
sys_edit的isfocus()函数不可用的问题 - 修复
sys_edit在调用setfocus()后不显示光标的问题 - 修复初始化后鼠标初始位置不正确的问题
- 修复
rgb2gray()未做近似处理的问题 - 修复用户手动关闭窗口不能马上退出的问题
- 修复
delay_ms(0)延时过长的问题,改为与Sleep(0)一致的行为(放弃剩余 CPU 时间片,其它线程执行后立即返回) - 修复角度不为 0 的文本在设置垂直居中时发生偏移的问题
- 修复 RGB 格式图片文件读取后图像 alpha 通道为 0 的问题
- 修复
ege_drawtext()无法旋转的问题 - 修复填充模式
EMPTY_FILL不正确的问题 - 修复矩形区域输出文本无法按照对齐方式正确显示的问题
- 修复
ege_drawtext()无法按照指定字体宽度输出文本的问题 - 修复
outtext()不更新当前点的问题 - 纠正
HOME键和END键的键码 - 修复设置视口后当前点没有移动至视口左上角的问题
- 修复
putimage系列函数在源矩形区域左上角不为 (0,0) 且宽高使用默认值 0 时会发生越界的问题 - 修复设置视口后 GDI+ 绘图坐标系未移动至视口左上角的问题
VECTOR3D的GetAngel()函数纠正为GetAngle()- 修复
random()无默认参数的问题 - 修复
keystate在打开文件对话窗口后失效的问题
功能调整
getimage()返回值类型统一为int,表示是否成功读取图像saveimage()根据文件名后缀确定保存为 PNG 格式还是 BMP 格式(优先保存为 PNG 格式)resize()恢复为自动填充背景色(20.08 行为改为不填充,现恢复),另新增不填充背景色的resize_f()EGERGB()、EGEARGB()等宏的返回值类型修改为color_t- 定时精度提升至 1ms
- 为部分类型增加
EGE_XXX_TYPEDEF宏,控制类型定义 - 消除扩展中的头文件包含顺序依赖
- 取消
setfillstyle()/getfillstyle()的弃用标记 - 图像旋转正方向修改为与坐标系一致的顺时针方向
- 调整文本垂直对齐方式的值
- 为 GCC 4.5 以上版本增加弃用信息
- 线条连接点默认样式统一修改为尖角
color_t恢复为与uint32_t一致的unsigned int类型(20.08 改为DWORD)
其它
- 绘图性能优化(GDI+ 实现的图形绘制以及 GDI 的直线绘制)
- 减少初次显示屏幕时的闪烁
- 图片读取速度优化
20.08 新版发布
新特性
- 库文件名统一为
graphics[64].lib或libgraphics[64].a - 初始化图形对象或调用
resize()时,支持将图形对象的长或宽设置为 0 - 增加
INIT_UNICODE初始化选项,此选项会创建 Unicode 窗口 - 增加
ege::seticon()函数,可通过资源 ID 设置窗口图标 - 增加
ege::ege_drawtext(),支持绘制文字时使用 Alpha 通道混合,呈现半透明效果 - 增加
putpixel_withalpha()和putpixel_withalpha_f()函数,支持带透明通道绘制像素点 - 允许在
initgraph()前调用newimage()创建图形对象 - 支持加载资源中 PNG 格式图片
- 使
getkey()可返回key_msg_char类型的消息,现在 EGE 支持读取输入法输入了 - 允许在调用
initgraph()前设置窗口标题和图标
修复 BUG
- 修正
putimage系列函数裁剪区计算错误的 BUG - 修复了
initgraph()的内存泄漏情况 - 修复了
setactivepage()和setvisualpage()无法使用的问题 - 修正
putpixel()等函数颜色格式错误 - 修正关于线型设置的 BUG
- 修正某些函数传入
NULL时段错误的 BUG
其它
- 使用 CMake 作为编译系统
- 从
ege.h中移出EgeControlBase的定义到ege/egecontrolbase.h中 - 默认字体设置为宋体
- 使用
PCIMAGE作为const IMAGE*的别名,并作为某些函数的形参类型 - 生成的静态库文件中不再包含 gdiplus 静态库
- 改用误差更小的 Alpha 通道混合算法
- 增加之前缺少的键码
resize()不再用默认背景色清空图像- 修改了
initgraph()的接口定义
近期评论