FCT
载入中...
搜索中...
未找到
VK_VertexBuffer.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/4/9.
3//
4#include "./VertexBuffer.h"
5#ifndef VK_VERTEXBUFFER_H
6#define VK_VERTEXBUFFER_H
7
8
9namespace FCT
10{
11 class VK_Context;
12 namespace RHI
13 {
14
16 public:
19
20 void createSingleBuffer(vk::Buffer& buffer, vk::DeviceMemory& memory);
21
22 void create() override;
23
24 void mapBuffer(void* data, uint32_t size) override;
25 void mapBuffer(void* data, uint32_t size, uint32_t frameIndex);
26
27 void bind(CommandBuffer* srcCmd, uint32_t slot, uint32_t offset) override;
28
29 void resize(uint32_t newSize);
30
31 void resizeBufferIfNeeded(uint32_t frameIndex);
32
33 protected:
34 std::vector<vk::Buffer> m_buffers;
35 std::vector<vk::DeviceMemory> m_memories;
36
37 std::vector<uint8_t> m_dirtyFrames;
38
40
41 bool m_pendingResize = false;
42 uint32_t m_newSize = 0;
43
44 vk::Buffer m_buffer;
45 vk::DeviceMemory m_memory;
46 };
47 }
48}
49
50#endif //VK_VERTEXBUFFER_H
void resizeBufferIfNeeded(uint32_t frameIndex)
void mapBuffer(void *data, uint32_t size) override
void bind(CommandBuffer *srcCmd, uint32_t slot, uint32_t offset) override
void createSingleBuffer(vk::Buffer &buffer, vk::DeviceMemory &memory)
std::vector< vk::Buffer > m_buffers
std::vector< vk::DeviceMemory > m_memories
std::vector< uint8_t > m_dirtyFrames