Skip to content

FCWYzzr/graphicpp-23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

graphicpp-23

项目简介

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作为主要开发环境:

  1. 安装CLion:从JetBrains官网下载并安装最新版本
  2. 安装Visual Studio
  3. 配置工具链
    • 选择Visual Studio工具链(推荐VS 2026)
  4. 导入项目
    • 打开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构建

  1. 打开项目后,CLion会自动配置CMake
  2. 选择合适的构建类型(Debug/Release)
  3. 点击"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文件。

About

a win32 graphic lib using f collections

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from FCWYzzr/f-cpp-project