used newly VKBufferMap in PrimitiveCreater

This commit is contained in:
2024-06-02 12:16:33 +08:00
parent 16ae849809
commit 66ef3160e1
7 changed files with 203 additions and 160 deletions

View File

@@ -1,10 +1,11 @@
#include<hgl/graph/VKBufferMap.h>
#include<hgl/graph/VKVertexAttribBuffer.h>
#include<iostream>
VK_NAMESPACE_BEGIN
VKBufferMap::VKBufferMap(DeviceBuffer *buf,VkDeviceSize off,VkDeviceSize s)
{
void VKBufferMap::Set(DeviceBuffer *buf,VkDeviceSize off,VkDeviceSize s)
{
buffer=buf;
offset=off;
size=s;
@@ -12,10 +13,35 @@ VKBufferMap::VKBufferMap(DeviceBuffer *buf,VkDeviceSize off,VkDeviceSize s)
map_ptr=nullptr;
}
void VKBufferMap::Clear()
{
if(buffer&&map_ptr)
buffer->Unmap();
buffer=nullptr;
offset=0;
size=0;
map_ptr=nullptr;
}
VKBufferMap::VKBufferMap()
{
Set(nullptr,0,0);
std::cout<<"VKBufferMap Create"<<std::endl;
}
VKBufferMap::VKBufferMap(DeviceBuffer *buf,VkDeviceSize off,VkDeviceSize s)
{
Set(buf,off,s);
}
VKBufferMap::~VKBufferMap()
{
if(map_ptr)
buffer->DeviceBuffer::Unmap();
if(buffer&&map_ptr)
buffer->Unmap();
std::cout<<"VKBufferMap Destory"<<std::endl;
}
void *VKBufferMap::Map()
@@ -26,18 +52,18 @@ void *VKBufferMap::Map()
if(!buffer)
return(nullptr);
map_ptr=buffer->DeviceBuffer::Map(offset,size);
map_ptr=buffer->Map(offset,size);
return map_ptr;
}
void VKBufferMap::Unmap()
{
if(map_ptr)
if(buffer&&map_ptr)
{
buffer->DeviceBuffer::Unmap();
buffer->Unmap();
map_ptr=nullptr;
}
}
VK_NAMESPACE_END
VK_NAMESPACE_END