Files
2026-09-16 14:07:40 +08:00

178 lines
5.5 KiB
Plaintext
Vendored
Raw Permalink 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.
/**
* @file DNDBrief.h
* @brief 说明
*
*
* @version 1.1
* @author lveyou
* @date 21-08-08
*/
/**
* @brief 为什么使用标准库?
* 为开源世界和C++标准做贡献,所以使用标准库。
*/
/**
* @brief 为什么不使用C++20模块
* 我尝试过模块,但编译期支持始终不完善,之好延后
*/
/**
* @brief 各系统的全局变量接口使用指针,以便控制生命周期,且不占用全局空间
*/
/**
* @brief 命名风格
* ?? 全局函数使用小写加下划线命名,例如 calc_n
* ?? 非泛用型的全局函数只开头小写,例如 createQuad
* 除了dl命令空间的全局函数都大写开头,例如Math::SetSeed
* 宏由于没有命令空间,所以必须dl开头防止冲突
* 不需要别处的资源的初始化叫init,而使用别处资源的初始化叫load
* 缩写只有首字母大写(命名空间除外)
* Add的含义是添加一个已有对象,而不是创建
* 除了dl命名空间,其他都首字母大小,例如dnd::Math,缩写除外比如dnd::UI
* 优先使用枚举类,如果只使用枚举,则使用Struct包含,枚举统一取名为Var(参见LogicType的实现)
* 冒号(:)作为特殊对象的命令,例如默认精灵、默认音效
* 对于多个元素,不使用单复数,而是加mul修饰。例如 _mulSpr,它可以是数组,也可以是链表。
* 加减乘除如下:Addition(add)、Subtraction(sub)、multiplication(mul)、division(div)
* 求和、求积:sum、??
* func为回调函数,fn为局部lambda函数
* small <-> large
*/
/**
* @brief 对象创建与释放
* 特殊物件通过g_factory创建
* 用户层面,一般情况不出现new关键字
* 资源名称:由于/不能作为文件名,故使用.替换/。
*/
/**
* @brief 关于绘制顺序
* 用order表示绘制遮挡顺序,越小则越靠近屏幕
* 对于UI来说,传入x,则所有子元素的order均大于等于x。
* 越先添加到Panel的Grouporder越大(详细参见Panel::SetOrder)。
*/
/**
* @brief 常用成员函数命名
* Refresh代表刷新、Set代表设置。前者含义带有不保存数据。
* Update为时间片逻辑、Render代表绘制、Run代表前二者合一(一般不使用Run)。
* Init代表初始化、Load代表加载、Create代表创建,一般用于静态函数创建对象。
* Reset代表重置、Delete代表删除、Clear代表清除、Release代表释放(Delete更表示不可逆的)、Click用于按钮按下)。
* Clone代表复制,Copy代表复制。前者为新建元素,后者为已有元素复制另外一个元素属性。
* GetBuffer返回byte流,GetData返回实际类型指针。
*
*/
/**
* @brief 越界时IsOutRange返回真,CheckRange返回假。
*/
/**
* @brief 类成员顺序
* 1.嵌套类
* 2.构造函数
* 3.操作符重载
* 4.主要函数
* 5.Set函数
* 5.Get函数
* 6.功能性函数
* 7.析构函数
* 8.私有成员
* 9.私有函数
*/
/**
* @brief 右值引用
* 右值引用一般用于移动语义,默认不使用移动语义,性能瓶颈再作优化,所以“const T&& a”没有实用意义。
*/
/**
* @brief 关于文件
* 优先使用fstream,由于大部分库都是用C语言的FILE文件句柄,故作兼容。
* 接口统一使用UTF-8编码,代码内容与代码文件皆使用utf8
*/
/**
* @brief C++标签
* deprecated 废弃接口
*/
/**
* @brief 应该优先使用以下基础类型
* int、unsigned、float
* 字节流使用std::byte
*/
/**
* @brief 复制dll命令
* xcopy / r / y $(SolutionDir)$(PlatformName)\$(Configuration)\DND3D.dll $(SolutionDir)bin\$(Configuration)
*/
/*
MS-DOS-style lines that end with (CR/LF) characters (optional for the last line)
Jiger: {使用回车换行(两个字符)作为行分隔符,最后一行数据可以没有这两个字符。}
An optional header record (there is no sure way to detect whether it is present, so care is required when importing).
Jiger:{标题行是否需要,要双方显示约定}.
Each record "should" contain the same number of comma-separated fields.
Jiger:{每行记录的字段数要相同,使用逗号分隔。} 逗号是默认使用的值,双方可以约定别的。
Any field may be quoted (with double quotes).
Jiger:{任何字段的值都可以使用双引号括起来}. 为简单期间,可以要求都使用双引号。
Fields containing a line-break, double-quote, and/or commas should be quoted. (If they are not, the file will likely be impossible to process correctly).
Jiger:{字段值中如果有换行符,双引号,逗号的,必须要使用双引号括起来。这是必须的。}
A (double) quote character in a field must be represented by two (double) quote characters.
Jiger:{如果值中有双引号,使用一对双引号来表示原来的一个双引号}
*/
/**
* @brief 基础定义与算法分类
* dl_type.h 类型定义、类型转换
* dl_algorithm.h 与类型无关的算法,操作容器的算法
* dl_math.h 数学相关、需要输出日志
*/
/**
* @brief 注释示例
*
* @detail 详细说明-------------------------------------aa
*
* @note 注释
* @attention 注意
* @warning 警告
* @exception 异常
* @remarks 备注说明
*
* @return 返回值
* @retval 返回值的说明
*
* @bug 有bug
* @todo 还没做完呢
* @see 参考一下
* @pre 前置条件
* @deprecated 过时了
*/
int this_is_doxygen_test() {}
/**
* @example 例子
*/
/*! \mainpage dl库
*
* \section intro_sec 介绍
*
* 基于C++20、vulkan的工具库。
* by略游 更新于2024-12-23
*
* 链接:https://gitee.com/lveyou/dl
*
* @image html framework.png "架构图"
*/