Files
dl/README.md
T
2026-09-16 14:07:40 +08:00

189 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# dl engine
## 语言 / Language
- [中文](README.md)
- [English](README.EN.md)
## 框架简介
dldrawing library)是以 C++ 语言为基础,集成各类 C/C++ 开源库组成的开发框架。
## 核心设计原则
1. 使用最新的 C++ 标准
2. 自身非商业化,免费
3. 集成各类开源库,便于使用
4. 适合开发各类原生应用,偏向于游戏引擎场景
5. 接口统一性,跨平台兼容
#### 支持平台
| 平台 | Windows10 | 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 | OK | 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 |
| 🌐 网络通信 | openssl | 加密库 |
| 🎵 音频处理 | flac | flac音频格式库 |
| 🎵 音频处理 | ogg | ogg音频格式库 |
| 🎵 音频处理 | openal-soft | OpenAL音频库 |
| 🎵 音频处理 | vorbis | ogg格式相关库 |
| 🎵 音频处理 | minimp3 | mp3格式库 |
| 🎵 音频处理 | midifile | midi库(暂未使用) |
| 🎵 音频处理 | rtmidi | midi库 |
| 🎨 图形/图像 | freetype | 字体解析库 |
| 🎨 图形/图像 | libwebp | webp格式库 |
| 🎨 图形/图像 | lunasvg | svg格式库 |
| 🎨 图形/图像 | stb_image | 常用图像格式解析库 |
| 🎨 图形/图像 | tinygltf | gltf格式库 |
| 🎨 图形/图像 | tinyobjloader | obj格式解析库 |
| 🚜 物理引擎 | box2d | 2D刚体物理引擎(暂未集成,后续计划) |
| 🚜 物理引擎 | JoltPhysics | 3D物理引擎 |
| 📊 数据解析 | json | json解析库 |
| 📊 数据解析 | libiconv | 字符编码转换库 |
| 📊 数据解析 | OpenXLSX | xlsx格式解析库 |
| 📊 数据解析 | tinyxml2 | xml格式解析库 |
| 📊 数据解析 | uchardet | 字符集检测(暂未使用) |
| 🗜️ 压缩库 | lz4 | lz4压缩算法库 |
| 🗜️ 压缩库 | zlib | 压缩格式库 |
| 🛠️ 开发调试 | CrashRpt | 崩溃采集工具(只支持windows) |
| 🛠️ 开发调试 | googletest | 单元测试库 |
| 🛠️ 开发调试 | infoware | 硬件信息获取 |
| 🛠️ 开发调试 | mimalloc | 内存分配器 |
| 🛠️ 开发调试 | vld | 内存泄露检测(只支持windows) |
| 🔧 通用工具 | fmt | format库,与std::format类似 |
| 🔧 通用工具 | glfw | 窗口库 |
| 🔧 通用工具 | qrcodegen | 二维码生成库 |
| 🔧 通用工具 | simde | simd流指令库 |
| 🔧 通用工具 | sqlite | sqlite库 |
| 🔧 通用工具 | wcwidth | 字符宽度检测 |
| 🔧 通用工具 | cpp-subprocess | 子进程库 |
| 🔧 通用工具 | ktx | ktx纹理压缩格式库 |
| 🔧 通用工具 | magic_enum | 枚举静态反射 |
| 📋 未使用/规划 | BigNumber | 大数类(暂未使用) |
## 安装教程
### Windows
1. 安装 vs2022+(包含C++环境、cmake工具)
2. 安装 vulkan-sdkhttps://vulkan.lunarg.com/sdk/home
3. 使用 vs打开项目文件夹,选中根目录CMakeLists.txt
4. 上方选中 A.Windows x64 Debug,然后选择dl_test.exe编译执行
### Linux(Ubuntu)
1. 下载 vscodehttps://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-sdkhttps://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-sdkhttps://vulkan.lunarg.com/sdk/home
3. 编译,在dl根目录执行
```
mdkir -p out
cd out
cmake ..
make -j4
```
## 使用说明
编译dl_test查看测试程序,也可直接下载发行版预览
## 讨论群
QQ群:512001256