Files
XCEngine/docs/api/rhi/d3d12/buffer/initialize.md

40 lines
971 B
Markdown
Raw Normal View History

# D3D12Buffer::Initialize
## 函数签名
```cpp
bool Initialize(ID3D12Device* device, uint64_t size, D3D12_RESOURCE_STATES initialState = D3D12_RESOURCE_STATE_COMMON, D3D12_HEAP_TYPE heapType = D3D12_HEAP_TYPE_DEFAULT)
```
## 中文描述
创建新缓冲区,分配 D3D12 显存资源。
## 参数
| 参数 | 类型 | 描述 |
|------|------|------|
| `device` | `ID3D12Device*` | D3D12 设备指针 |
| `size` | `uint64_t` | 缓冲区大小(字节) |
| `initialState` | `D3D12_RESOURCE_STATES` | 初始资源状态(默认 COMMON |
| `heapType` | `D3D12_HEAP_TYPE` | 堆类型DEFAULT默认、UPLOAD上传、READBACK回读 |
## 返回值
`bool` - 初始化是否成功
## 复杂度
O(n) - 取决于缓冲区大小
## 示例
```cpp
D3D12Buffer vertexBuffer;
vertexBuffer.Initialize(
device->GetDevice(),
sizeof(Vertex) * vertexCount,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER,
D3D12_HEAP_TYPE_DEFAULT);
```