2026-03-19 00:48:44 +08:00
|
|
|
|
# LinearAllocator
|
|
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::Memory`
|
|
|
|
|
|
|
|
|
|
|
|
**类型**: `class`
|
|
|
|
|
|
|
2026-03-20 02:35:24 +08:00
|
|
|
|
**头文件**: `XCEngine/Memory/LinearAllocator.h`
|
|
|
|
|
|
|
2026-03-19 00:48:44 +08:00
|
|
|
|
**描述**: 线性分配器,适合帧分配和临时对象。
|
|
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
|
|
`LinearAllocator` 是一种顺序分配器,预分配一个大缓冲区,每次分配从缓冲区起始位置顺序分配,偏移量递增。它不适合需要释放任意块的场景,但分配和清除非常高效,常用于帧分配器。
|
|
|
|
|
|
|
|
|
|
|
|
## 公共方法
|
|
|
|
|
|
|
|
|
|
|
|
| 方法 | 描述 |
|
|
|
|
|
|
|------|------|
|
2026-03-20 02:35:24 +08:00
|
|
|
|
| [`LinearAllocator`](constructor.md) | 构造线性分配器 |
|
|
|
|
|
|
| [`~LinearAllocator`](~linear-allocator.md) | 析构函数,释放底层缓冲区 |
|
|
|
|
|
|
| [`Allocate`](allocate.md) | 顺序分配内存 |
|
|
|
|
|
|
| [`Free`](free.md) | 无效果(不支持) |
|
|
|
|
|
|
| [`Reallocate`](reallocate.md) | 不支持(始终返回 nullptr) |
|
|
|
|
|
|
| [`Clear`](clear.md) | 清空所有分配 |
|
|
|
|
|
|
| [`GetMarker`](get-marker.md) | 获取当前位置标记 |
|
|
|
|
|
|
| [`SetMarker`](set-marker.md) | 回滚到指定标记位置 |
|
|
|
|
|
|
| [`GetUsedSize`](get-used-size.md) | 获取已使用字节数 |
|
|
|
|
|
|
| [`GetCapacity`](get-capacity.md) | 获取总容量 |
|
|
|
|
|
|
| [`GetName`](get-name.md) | 获取分配器名称 |
|
|
|
|
|
|
| [`GetTotalAllocated`](get-total-allocated.md) | 获取累计分配字节数 |
|
|
|
|
|
|
| [`GetTotalFreed`](get-total-freed.md) | 获取累计释放字节数 |
|
|
|
|
|
|
| [`GetPeakAllocated`](get-peak-allocated.md) | 获取峰值分配字节数 |
|
|
|
|
|
|
| [`GetAllocationCount`](get-allocation-count.md) | 获取分配次数 |
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
2026-03-19 00:48:44 +08:00
|
|
|
|
- [Memory 模块总览](../memory.md) - 返回模块总览
|
|
|
|
|
|
- [IAllocator](../allocator/allocator.md) - 分配器接口
|