Easy Graphics Engine 25.11 发布

我们非常高兴地宣布 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)

键盘输入增强

  • 新增快速检测按键动作的函数:keypresskeyreleasekeyrepeat
  • 新增 kbhit_console 函数,与 getch_console 配套使用

文本与图像处理

  • 新增 ege::measuretext 函数,用于测量 ege_ 前缀函数绘制的文本宽高
  • 新增 ege::image_convertcolor 函数,用于转换图像像素的颜色类型
  • 新增 color_type 枚举,用于指定图像像素的颜色类型(COLORTYPE_PRGB32COLORTYPE_ARGB32COLORTYPE_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 为 1
  • putimage_alphablend 系列函数的参数由 alpha_type alphaType 改为 color_type colorType,默认值为 COLORTYPE_PRGB32
  • 数据压缩相关函数签名调整,参数类型由 unsigned long 改为 uint32_t
  • BoundRectRectF 类的方法重命名:isContains → containsisOverlaps → overlaps
  • 修正拼写错误:tranpose → transposeflipHorizonal → flipHorizontal

行为调整

  • keystate 返回值改为 bool 类型,参数无效时返回 false
  • kbmsgkbhit 在运行环境退出后的返回值由 -1 改为 0,防止阻塞
  • 非阻塞或非延时函数不再触发窗口刷新
  • flushmouseflushkey 不再触发窗口刷新
  • 调整初始化环境之前所返回的颜色值,允许预先设置窗口背景色
  • 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)
  • 🌐 中英文双语界面,根据系统语言自动切换

安装方式

  1. 打开 CLion → Settings/Preferences → Plugins
  2. 在 Marketplace 搜索 “XEGE Creator”
  3. 点击 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 语言设置

安装方式

  1. 打开 VS Code → 扩展面板(Ctrl+Shift+X
  2. 搜索 “ege” 或 “xege”
  3. 点击安装

📦 下载与安装

预编译 SDK

查看: https://xege.org/install_and_config

仓库地址

环境要求

  • Windows 7 及以上系统
  • 支持的编译器:Visual Studio 2010-2026, GCC/MinGW

🙏 致谢

感谢所有贡献者和用户的支持!EGE 致力于为 C/C++ 初学者提供最简单易用的图形编程体验。

如有问题或建议,欢迎访问 GitHub Issues 反馈。


Happy Coding with EGE! 🎉

文章分类 技术分享, 默认 标签: , ,