Add Deserialise support for objects created with SerialisePODArray.

This commit is contained in:
GregF
2015-10-13 17:52:32 -06:00
committed by baldurk
parent ad77fc2c5d
commit cf1b3a2aa5
3 changed files with 33 additions and 3 deletions
+30
View File
@@ -2250,6 +2250,16 @@ void Serialiser::Serialise(const char *name, VkBufferCreateInfo &el)
SerialisePODArray("pQueueFamilyIndices", (uint32_t *&)el.pQueueFamilyIndices, el.queueFamilyCount);
}
template<>
Serialiser::Deserialise<VkBufferCreateInfo>::~Deserialise()
{
if(m_Mode == READING)
{
RDCASSERT(pNext == NULL); // otherwise delete
delete [] pQueueFamilyIndices;
}
}
template<>
void Serialiser::Serialise(const char *name, VkBufferViewCreateInfo &el)
{
@@ -2289,6 +2299,16 @@ void Serialiser::Serialise(const char *name, VkImageCreateInfo &el)
Serialise("initialLayout", el.initialLayout);
}
template<>
Serialiser::Deserialise<VkImageCreateInfo>::~Deserialise()
{
if(m_Mode == READING)
{
RDCASSERT(pNext == NULL); // otherwise delete
delete [] pQueueFamilyIndices;
}
}
template<>
void Serialiser::Serialise(const char *name, VkImageViewCreateInfo &el)
{
@@ -2473,6 +2493,16 @@ void Serialiser::Serialise(const char *name, VkRenderPassBeginInfo &el)
SerialisePODArray("pClearValues", (VkClearValue *&)el.pClearValues, el.clearValueCount);
}
template<>
Serialiser::Deserialise<VkRenderPassBeginInfo>::~Deserialise()
{
if(m_Mode == READING)
{
RDCASSERT(pNext == NULL); // otherwise delete
delete [] pClearValues;
}
}
template<>
void Serialiser::Serialise(const char *name, VkVertexInputBindingDescription &el)
{
@@ -517,7 +517,7 @@ bool WrappedVulkan::Serialise_vkCmdBeginRenderPass(
VkRenderPassContents contents)
{
SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(cmdBuffer));
SERIALISE_ELEMENT(VkRenderPassBeginInfo, beginInfo, *pRenderPassBegin);
SERIALISE_ELEMENT_CLASS(VkRenderPassBeginInfo, beginInfo, *pRenderPassBegin);
SERIALISE_ELEMENT(VkRenderPassContents, cont, contents);
if(m_State < WRITING)
@@ -511,7 +511,7 @@ bool WrappedVulkan::Serialise_vkCreateBuffer(
VkBuffer* pBuffer)
{
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
SERIALISE_ELEMENT(VkBufferCreateInfo, info, *pCreateInfo);
SERIALISE_ELEMENT_CLASS(VkBufferCreateInfo, info, *pCreateInfo);
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pBuffer));
if(m_State == READING)
@@ -654,7 +654,7 @@ bool WrappedVulkan::Serialise_vkCreateImage(
VkImage* pImage)
{
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
SERIALISE_ELEMENT(VkImageCreateInfo, info, *pCreateInfo);
SERIALISE_ELEMENT_CLASS(VkImageCreateInfo, info, *pCreateInfo);
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pImage));
if(m_State == READING)