- fix model shutdown crash
This commit is contained in:
parent
eb9f6ec313
commit
d413581ee2
3 changed files with 32 additions and 1 deletions
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue