2019-04-11 22:40:13 +08:00
|
|
|
|
#include"VKBuffer.h"
|
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
|
|
|
Buffer::~Buffer()
|
|
|
|
|
{
|
2019-04-16 02:20:54 +08:00
|
|
|
|
vkFreeMemory(device,buf.memory,nullptr);
|
2019-04-17 02:36:25 +08:00
|
|
|
|
vkDestroyBuffer(device,buf.buffer,nullptr);
|
2019-04-11 22:40:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
2019-04-11 23:02:02 +08:00
|
|
|
|
uint8_t *Buffer::Map(uint32_t start,uint32_t size)
|
2019-04-11 22:40:13 +08:00
|
|
|
|
{
|
|
|
|
|
uint8_t *p;
|
|
|
|
|
|
2019-04-16 02:20:54 +08:00
|
|
|
|
if(start>buf.info.range
|
|
|
|
|
||start+size>buf.info.range)
|
2019-04-11 23:02:02 +08:00
|
|
|
|
return(nullptr);
|
|
|
|
|
|
|
|
|
|
if(start==0&&size==0)
|
2019-04-16 02:20:54 +08:00
|
|
|
|
size=buf.info.range;
|
2019-04-11 23:02:02 +08:00
|
|
|
|
|
2019-04-16 02:20:54 +08:00
|
|
|
|
if(vkMapMemory(device,buf.memory,start,size,0,(void **)&p)==VK_SUCCESS)
|
2019-04-11 22:40:13 +08:00
|
|
|
|
return p;
|
|
|
|
|
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
void Buffer::Unmap()
|
|
|
|
|
{
|
2019-04-16 02:20:54 +08:00
|
|
|
|
vkUnmapMemory(device,buf.memory);
|
2019-04-11 22:40:13 +08:00
|
|
|
|
}
|
|
|
|
|
VK_NAMESPACE_END
|