初始化内容
This commit is contained in:
@@ -1,2 +1,189 @@
|
||||
# dl
|
||||
# dl engine
|
||||
|
||||
## 语言 / Language
|
||||
- [中文](README.md)
|
||||
- [English](README.EN.md)
|
||||
|
||||
## 框架简介
|
||||
dl(drawing 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-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
|
||||
Reference in New Issue
Block a user