初始化内容

This commit is contained in:
2026-09-16 14:07:40 +08:00
parent 6934b390bf
commit 4f643c1e7c
18350 changed files with 6088489 additions and 305 deletions
+188 -1
View File
@@ -1,2 +1,189 @@
# dl
# 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