- fix model shutdown crash

This commit is contained in:
Magnus Norddahl 2019-04-09 17:06:54 +02:00
commit d413581ee2
3 changed files with 32 additions and 1 deletions

View file

@ -6,9 +6,22 @@
#include "vulkan/renderer/vk_renderpass.h"
#include "doomerrors.h"
VKBuffer *VKBuffer::First = nullptr;
VKBuffer::VKBuffer()
{
Next = First;
First = this;
if (Next) Next->Prev = this;
}
VKBuffer::~VKBuffer()
{
if (map)
if (Next) Next->Prev = Prev;
if (Prev) Prev->Next = Next;
else First = Next;
if (mBuffer && map)
mBuffer->Unmap();
auto fb = GetVulkanFrameBuffer();
@ -16,6 +29,14 @@ VKBuffer::~VKBuffer()
fb->FrameDeleteList.Buffers.push_back(std::move(mBuffer));
}
void VKBuffer::Reset()
{
if (mBuffer && map)
mBuffer->Unmap();
mBuffer.reset();
mStaging.reset();
}
void VKBuffer::SetData(size_t size, const void *data, bool staticdata)
{
auto fb = GetVulkanFrameBuffer();