FCT
载入中...
搜索中...
未找到
VertexBuffer.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/4/9.
3//
4#include "../Context/Vertex.h"
5#ifndef FCT_RHI_VERTEXBUFFER_H
6#define FCT_RHI_VERTEXBUFFER_H
7namespace FCT
8{
9 namespace RHI
10 {
11 class CommandBuffer;
13 {
14 public:
23 {
25 if (m_size < vertexBuffer->getVertexCount())
26 {
27 m_size = vertexBuffer->getVertexCount();
28 }
29 m_stride = vertexBuffer->getStride();
30 }
36 {
38 {
39 //todo: 根据内存类型选择更新数据方式
40 mapBuffer(m_vertexBuffer->getData(), m_vertexBuffer->getDataSize());
41 }
42 }
43 void reserve(size_t size)
44 {
45 m_size = size;
46 }
47
48 virtual void create() = 0;
49 virtual void mapBuffer(void* data, uint32_t size) = 0;
50 virtual void bind(CommandBuffer* srcCmd, uint32_t slot = 0,uint32_t offset = 0) = 0;
51 virtual void resize(uint32_t newSize) = 0;
52 protected:
55 size_t m_size;
56 size_t m_stride;
57 };
58 }
59}
60#endif //FCT_RHI_VERTEXBUFFER_H
void updateFrequency(UpdateFrequency updateFrequency)
virtual void bind(CommandBuffer *srcCmd, uint32_t slot=0, uint32_t offset=0)=0
FCT::VertexBuffer * m_vertexBuffer
void vertexBuffer(FCT::VertexBuffer *vertexBuffer)
virtual void create()=0
UpdateFrequency m_updateFrequency
void reserve(size_t size)
virtual void mapBuffer(void *data, uint32_t size)=0
virtual void resize(uint32_t newSize)=0
UpdateFrequency