graphicpp-23是一个使用C++23模块系统开发的现代化图形库,基于Direct2D和DirectWrite技术,提供简洁易用的图形渲染API。该库旨在简化Windows平台上的2D图形编程,同时充分利用C++23的新特性和模块系统。
- C++23模块系统:采用最新的C++23模块系统,提供更好的编译时性能和更清晰的代码组织
- Direct2D/DirectWrite集成:基于Windows原生图形API,提供高性能的2D渲染和文本处理
- 简洁易用的API:设计简洁的接口,降低图形编程的复杂度
- 现代化C++设计:充分利用现代C++特性
强烈推荐使用CLion作为主要开发环境:
- 安装CLion:从JetBrains官网下载并安装最新版本
- 安装Visual Studio
- 配置工具链:
- 选择Visual Studio工具链(推荐VS 2026)
- 导入项目:
- 打开CLion,选择"Open"并导航到项目根目录
- CLion会自动检测CMakeLists.txt文件
- 等待项目加载完成
推荐使用f-cpp-project模板进行C++项目开发。该模板提供了:
- 现代化的CMake配置
- C++23模块支持
- 统一的代码风格和规范
使用该模板可以快速搭建与graphicpp-23一致的项目结构。
#include <clocale>
import std;
import graphicpp_23;
import <Windows.h>;
using namespace std::chrono_literals;
int main() {
// 用于使用f::cvt
std::setlocale(LC_CTYPE, "zh_CN.utf8");
auto ctx = gpp23::context{};
gpp23::graphic_2d{ctx}.color({1.0, 0.0, 0.0, 1.0});
ctx.on_draw([](auto& c) {
const auto adapter = gpp23::graphic_2d{c};
adapter.clear({1.0, 1.0, 1.0, 1.0});
adapter.fill(gpp23::ellipse{gpp23::point{
100.0f, 0
}, 100.0f, 100.0f});
});
ctx.wait_close();
}- 将预编译的模块导出文件加入工件源文件目录
- 链接静态库 或者
- 使用add_subdirectory追加为cmake子工程
- 打开项目后,CLion会自动配置CMake
- 选择合适的构建类型(Debug/Release)
- 点击"Build"按钮或使用快捷键
Ctrl+F9进行构建
# 创建构建目录
mkdir build
cd build
# 配置CMake
cmake ..
# 编译项目
cmake --build .graphicpp-23/
├── 3rdparty/ # 第三方依赖
│ └── f-lib/ # F-Lib库
├── modules/ # C++23模块目录
│ └── graphicpp-23/ # 主模块
│ └── src/ # 源代码
├── CMakeLists.txt # 主CMake配置
├── LICENSE # 许可证文件
└── README.md # 项目说明
- CMake:4.1或更高版本
- Visual Studio:2026或更高版本(支持C++23)
- Direct2D/DirectWrite:Windows SDK中包含
- F-Lib:作为子模块引入,提供基础工具类和Win32包装
本项目采用MIT许可证,详情请查看LICENSE文件。