# dl **Repository Path**: lveyou/dl ## Basic Information - **Project Name**: dl - **Description**: C++ drawing library - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2023-04-22 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: utils **Tags**: None ## README # dl engine ## 框架简介 dl(drawing library)是以 C++ 语言为基础,集成各类 C/C++ 开源库组成的开发框架。 ## 核心设计原则 1. 使用最新的 C++ 标准 2. 自身非商业化,免费 3. 集成各类开源库,便于使用 4. 适合开发各类原生应用,偏向于游戏引擎场景 5. 接口统一性,跨平台兼容 #### 支持平台 | 平台 | Windows7+ | Linux | Android | MacOS | IOS | |------|------------|--------------|--------|------|------| | 编译 | OK | OK | OK | OK | TODO | | 绘图 | OK | OK | OK | OK | TODO | | 文件 | OK | OK | OK | OK | TODO | | 音效 | OK | OK | OK | OK | TODO | | OPENSSL | OK | OK | TODO | OK | TODO | | 输入 | OK | OK | 部分 | OK | TODO | | 网络 | OK | OK | OK | OK | TODO | ## 目录结构 ```text ├── build/ # 构建相关文件和脚本 ├── dl/ # 核心引擎代码 │ ├── base/ # 基础数据结构和工具 │ ├── io/ # 输入输出功能 │ ├── math/ # 数学库 │ ├── memory/ # 内存管理 │ ├── misc/ # 杂项功能 │ ├── render/ # 渲染系统 │ ├── script/ # 脚本支持 │ ├── system/ # 系统功能 │ ├── tool/ # 工具类 │ ├── ui/ # UI系统 │ └── vk/ # Vulkan渲染 ├── document/ # 文档 ├── project/ # 项目示例和测试 ├── redist/ # 运行库 ├── res/ # 必要资源文件 ├── shader/ # 着色器代码 └── third/ # 第三方库 ``` ## 注意事项 :heavy_exclamation_mark: `拉取仓库时,请勿勾选拉取子模块` :heavy_exclamation_mark: `暂无发布版本,非商业化,欢迎加入` ## 第三方库列表 | 功能分类 | 库名 | 说明 | | :------------- | :------------ | :------------------------------------- | | 📜 脚本相关 | angelscript | 类C++语法的强类型脚本语言(不再使用) | | 📜 脚本相关 | lua | lua脚本语言 | | 📜 脚本相关 | LuaBridge3 | lua绑定库 | | 🌐 网络通信 | asio | 网络库,将来或许会进标准库 | | 🌐 网络通信 | curl | 通信协议库(配合OpenSSL可支持https) | | 🎵 音频处理 | flac | flac音频格式库 | | 🎵 音频处理 | ogg | ogg音频格式库 | | 🎵 音频处理 | openal-soft | OpenAL音频库 | | 🎵 音频处理 | vorbis | ogg格式相关库 | | 🎵 音频处理 | midifile | midi库(暂未使用) | | 🎵 音频处理 | rtmidi | midi库(暂未使用) | | 🎨 图形/图像 | freetype | 字体解析库 | | 🎨 图形/图像 | libwebp | webp格式库 | | 🎨 图形/图像 | lunasvg | svg格式库 | | 🎨 图形/图像 | stb_image | 常用图像格式解析库 | | 🎨 图形/图像 | tinygltf | gltf格式库 | | 🎨 图形/图像 | tinyobjloader | obj格式解析库 | | 🚜 物理引擎 | box2d | 2D刚体物理引擎(暂未集成,后续计划) | | 🚜 物理引擎 | ode | 3D物理引擎 | | 📊 数据解析 | json | json解析库 | | 📊 数据解析 | libiconv | 字符编码转换库 | | 📊 数据解析 | OpenXLSX | xlsx格式解析库 | | 📊 数据解析 | tinyxml2 | xml格式解析库 | | 📊 数据解析 | uchardet | 字符集检测(暂未使用) | | 🗜️ 压缩库 | lz4 | lz4压缩算法库 | | 🗜️ 压缩库 | zlib | 压缩格式库 | | 🛠️ 开发调试 | CrashRpt | 崩溃采集工具(只支持windows) | | 🛠️ 开发调试 | doctest | 测试库(暂未使用) | | 🛠️ 开发调试 | infoware | 硬件信息获取 | | 🛠️ 开发调试 | vld | 内存泄露检测(只支持windows) | | 🔧 通用工具 | fmt | format库,与std::format类似 | | 🔧 通用工具 | glfw | 窗口库(不支持android,需另处理) | | 🔧 通用工具 | qrcodegen | 二维码生成库 | | 🔧 通用工具 | simde | simd流指令库 | | 🔧 通用工具 | sqlite | sqlite库 | | 🔧 通用工具 | wcwidth | 字符宽度检测 | | 📋 未使用/规划 | better-enums | 更好的枚举(暂未使用) | | 📋 未使用/规划 | BigNumber | 大数类(暂未使用) | ## 安装教程 ### Windows 1. 安装 vs2022+(包含C++环境、cmake工具) 2. 安装 vulkan-sdk:https://vulkan.lunarg.com/sdk/home 3. 使用 vs打开项目文件夹,选中根目录CMakeLists.txt 4. 上方选中 A.Windows x64 Debug,然后选择dl_test.exe编译执行 ### Linux(Ubuntu) 1. 下载 vscode:https://code.visualstudio.com/#alt-downloads 2. 安装 vscode、git、vulkan-sdk、glfw等环境 ``` // 为了提高下载速度,请先在“软件和更新”中设置国内镜像 sudo apt update //---------------------安装 vscode----------------------- //1.官网下载安装 sudo dpkg -i *.deb // 切换到vscode安装包目录安装 //2.商店搜索安装 //---------------------安装 cmake、clang等-------------------------- sudo apt install cmake sudo apt install clang sudo apt install xorg-dev //---------------------安装 vulkan-sdk------------------- wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.268-jammy.list https://packages.lunarg.com/vulkan/1.3.268/lunarg-vulkan-1.3.268-jammy.list sudo apt update sudo apt install vulkan-sdk ``` 3. 打开 项目文件夹,选中根目录CMakeLists.txt生成 4. 安装 vscode相关插件,cmake、C++等 5. 下方选中 B.Linux Clang 编译执行dl_test ### Linux(CentOS) ``` # 安装clang sudo dnf install clang clang-tools-extra -y # 安装cmake sudo dnf install cmake -y # 安装curl sudo dnf install libcurl-devel -y # 拉取仓库 cd /opt git clone https://gitee.com/lveyou/dl.git # 解析dl mkdir -p out cd out cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DODE_WITH_DEMOS=false -DDL_EASY=true .. # 编译 make -j4 # 拉取子项目 git submodule update --init --recursive project/dl_chess_server/ ``` ### Android 1. 安装 Android Studio 2. 安装 vulkan-sdk:https://vulkan.lunarg.com/sdk/home 3. 使用 Android Studio打开build/android目录编译执行 ### MacOS 1. 安装cmake ```bash # 安装 brew,已安装跳过 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew update brew install cmake ``` 2. 安装 vulkan-sdk:https://vulkan.lunarg.com/sdk/home 3. 编译,在dl根目录执行 ``` mdkir -p out cd out cmake .. make -j4 ``` ## 使用说明 编译dl_test查看测试程序,也可直接下载发行版预览 ## 讨论群 QQ群:512001256