我们非常高兴地宣布 EGE (Easy Graphics Engine) 25.11 正式发布!这是继 24.04 版本之后的又一重要更新,带来了大量令人兴奋的新特性、性能改进和问题修复。
下载 & 安装: https://xege.org/install_and_config
🎯 版本亮点
📸 相机捕捉功能(全新功能)
本次更新最大的亮点是引入了摄像头/相机捕捉功能!新增 ege::CameraCapture 类,基于 ccap 提供相机驱动,支持在 C++17 及以上的编译器中使用,让您可以轻松在 EGE 程序中获取摄像头画面。
📦 图像库升级
- 使用 stb_image 替代
libpng解析图像文件,支持更多图像格式(PNG、JPEG、BMP、GIF、TGA、PSD、HDR、PIC、PNM) - 使用轻量的 sdefl/sinfl 库替代
zlib实现数据压缩/解压,移除libpng和zlib依赖,简化编译配置
✨ 新增功能
鼠标输入增强
- 新增鼠标双击检测支持,
mouse_msg::is_doubleclick()方法 - 新增鼠标扩展键检测(如 XBUTTON1, XBUTTON2)
键盘输入增强
- 新增快速检测按键动作的函数:
keypress、keyrelease、keyrepeat - 新增
kbhit_console函数,与getch_console配套使用
文本与图像处理
- 新增
ege::measuretext函数,用于测量ege_前缀函数绘制的文本宽高 - 新增
ege::image_convertcolor函数,用于转换图像像素的颜色类型 - 新增
color_type枚举,用于指定图像像素的颜色类型(COLORTYPE_PRGB32,COLORTYPE_ARGB32,COLORTYPE_RGB32)
数据压缩
- 新增
ege_compress_bound函数,用于获取压缩数据的最大长度
其他新功能
- 新增
ege/types.h头文件,提供基础类型定义
🔧 改进优化
渲染性能提升
- 图像像素默认颜色格式由
ARGB32改为PRGB32(预乘Alpha),显著提升渲染效率 - 优化静态库编译参数,同时支持
/MD和/MT编译
API 改进
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 ege.h提供双语版本(英文版为默认版本,中文版ege.zh_CN.h主要用于生成文档)- 文档示例代码中的
sprintf改为更安全的snprintf
🐛 问题修复
- 修复垂直方向对齐对
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 alphaType改为color_type colorType,默认值为COLORTYPE_PRGB32- 数据压缩相关函数签名调整,参数类型由
unsigned long改为uint32_t Bound、Rect、RectF类的方法重命名:isContains→contains,isOverlaps→overlaps- 修正拼写错误:
tranpose→transpose,flipHorizonal→flipHorizontal
行为调整
keystate返回值改为bool类型,参数无效时返回falsekbmsg、kbhit在运行环境退出后的返回值由-1改为0,防止阻塞- 非阻塞或非延时函数不再触发窗口刷新
flushmouse、flushkey不再触发窗口刷新- 调整初始化环境之前所返回的颜色值,允许预先设置窗口背景色
graphics_errors数值改为十进制格式,便于调试
🎮 新增示例程序
本版本新增以下示例程序:
| Demo | 说明 |
|---|---|
| camera_base | 📷 相机基础演示 – 摄像头画面采集与显示 |
| camera_wave | 🌊 相机波浪效果 – 演示相机捕捉与实时图像处理 |
| game_gomoku | 🎯 五子棋游戏 – 支持简单 AI 对战、落棋音效、抗锯齿棋子 |
| graph_sort_visualization | 📊 排序可视化 – 直观展示各种排序算法的执行过程 |
| graph_function_visualization | 📈 函数绘制 – 蒙特卡洛法绘制二元函数图像 |
| graph_astar_pathfinding | 🗺️ A 寻路算法* – 经典启发式搜索算法可视化,支持迷宫生成 |
| graph_boids | 🐦 Boids 群集模拟 – 模拟鸟群/鱼群的涌现行为 |
| graph_game_of_life | 🧬 康威生命游戏 – 元胞自动机经典演示,内置多种预设图案 |
| graph_kmeans | 🔵 K-Means 聚类 – 机器学习聚类算法可视化 |
此外,示例库还包含更多精彩 Demo(分形绘制、时钟、星空效果等),欢迎探索!
🔨 构建与文档
- 移除
libpng和zlib依赖,简化编译配置 - 优化 CMake 配置,添加构建选项允许设置不构建示例程序
- 优化 GitHub Actions 工作流,增加 MinGW Windows 构建和 macOS 交叉编译支持
- 增加编译测试模块,用于发现编译兼容性问题
- 添加单元测试相关模块和性能测试逻辑
- 优化发布脚本,支持跨平台(macOS/Linux/Windows)
- 文档更新:修正多处文档错误,更新示例代码,补充新功能说明
🔌 IDE 插件
为了让开发者更便捷地使用 EGE,我们提供了主流 IDE 的官方插件支持:
CLion 插件(全新发布)
XEGE Creator 是专为 JetBrains CLion 打造的 EGE 项目向导插件,帮助你快速创建和配置 EGE 图形程序项目。
| 信息 | 链接 |
|---|---|
| 插件商店 | JetBrains Marketplace |
| 源码仓库 | https://github.com/x-ege/ege-clion-plugin |
功能特性:
- ✨ 一键创建 EGE 项目,自动配置 CMake 构建系统
- 🔧 支持预编译库模式和源码模式两种使用方式
- 🌍 完整的多平台支持(Windows MinGW/MSVC、macOS、Linux)
- 🌐 中英文双语界面,根据系统语言自动切换
安装方式:
- 打开 CLion →
Settings/Preferences → Plugins - 在
Marketplace搜索 “XEGE Creator” - 点击
Install安装并重启 CLion
VSCode 插件
EGE 插件为 Visual Studio Code 用户提供一站式开发体验。
| 信息 | 链接 |
|---|---|
| 插件商店 | VS Marketplace |
| 源码仓库 | https://github.com/x-ege/ege-vscode-plugin |
功能特性:
- 📁 一键生成 EGE 项目(支持预编译库和源码两种模板)
- ▶️ 单文件快速编译运行,无需复杂配置
- 🍎 支持 macOS/Linux(通过 mingw-w64 + wine 跨平台编译)
- 🌐 中英文双语界面,自动适配 VS Code 语言设置
安装方式:
- 打开 VS Code → 扩展面板(
Ctrl+Shift+X) - 搜索 “ege” 或 “xege”
- 点击安装
📦 下载与安装
预编译 SDK
查看: https://xege.org/install_and_config
仓库地址
- GitHub: https://github.com/x-ege/xege
- SDK 仓库: https://github.com/x-ege/xege-sdk
- 官网: https://xege.org
环境要求
- Windows 7 及以上系统
- 支持的编译器:Visual Studio 2010-2026, GCC/MinGW
🙏 致谢
感谢所有贡献者和用户的支持!EGE 致力于为 C/C++ 初学者提供最简单易用的图形编程体验。
如有问题或建议,欢迎访问 GitHub Issues 反馈。
Happy Coding with EGE! 🎉
近期评论