mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-22 14:36:35 +00:00
Finish move to Deserialise function; remove Deserialise class
This commit is contained in:
@@ -2221,7 +2221,7 @@ void Serialiser::Serialise(const char *name, VkDeviceCreateInfo &el)
|
||||
//template <> class Serialiser::Deserialise<VkDeviceCreateInfo>;
|
||||
|
||||
template<>
|
||||
void Serialiser::Deserialize(const VkDeviceCreateInfo* const el) const
|
||||
void Serialiser::Deserialise(const VkDeviceCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
@@ -2251,12 +2251,12 @@ void Serialiser::Serialise(const char *name, VkBufferCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkBufferCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkBufferCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pQueueFamilyIndices;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pQueueFamilyIndices;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2300,12 +2300,12 @@ void Serialiser::Serialise(const char *name, VkImageCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkImageCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkImageCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pQueueFamilyIndices;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pQueueFamilyIndices;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2353,12 +2353,12 @@ void Serialiser::Serialise(const char *name, VkFramebufferCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkFramebufferCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkFramebufferCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pAttachments;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pAttachments;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2448,30 +2448,30 @@ void Serialiser::Serialise(const char *name, VkRenderPassCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkRenderPassCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkRenderPassCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
for (uint32_t i=0; i<attachmentCount; i++)
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
for (uint32_t i=0; i<el->attachmentCount; i++)
|
||||
{
|
||||
RDCASSERT(pAttachments[i].pNext == NULL); // otherwise delete
|
||||
RDCASSERT(el->pAttachments[i].pNext == NULL); // otherwise delete
|
||||
}
|
||||
delete [] pAttachments;
|
||||
for (uint32_t i=0; i<subpassCount; i++)
|
||||
delete [] el->pAttachments;
|
||||
for (uint32_t i=0; i<el->subpassCount; i++)
|
||||
{
|
||||
RDCASSERT(pSubpasses[i].pNext == NULL); // otherwise delete
|
||||
delete pSubpasses[i].pInputAttachments;
|
||||
delete pSubpasses[i].pColorAttachments;
|
||||
delete pSubpasses[i].pResolveAttachments;
|
||||
delete pSubpasses[i].pPreserveAttachments;
|
||||
RDCASSERT(el->pSubpasses[i].pNext == NULL); // otherwise delete
|
||||
delete el->pSubpasses[i].pInputAttachments;
|
||||
delete el->pSubpasses[i].pColorAttachments;
|
||||
delete el->pSubpasses[i].pResolveAttachments;
|
||||
delete el->pSubpasses[i].pPreserveAttachments;
|
||||
}
|
||||
delete [] pSubpasses;
|
||||
for (uint32_t i=0; i<dependencyCount; i++)
|
||||
delete [] el->pSubpasses;
|
||||
for (uint32_t i=0; i<el->dependencyCount; i++)
|
||||
{
|
||||
RDCASSERT(pDependencies[i].pNext == NULL); // otherwise delete
|
||||
RDCASSERT(el->pDependencies[i].pNext == NULL); // otherwise delete
|
||||
}
|
||||
delete [] pDependencies;
|
||||
delete [] el->pDependencies;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2494,12 +2494,12 @@ void Serialiser::Serialise(const char *name, VkRenderPassBeginInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkRenderPassBeginInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkRenderPassBeginInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pClearValues;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pClearValues;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2889,12 +2889,12 @@ void Serialiser::Serialise(const char *name, VkPipelineCacheCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkPipelineCacheCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkPipelineCacheCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] (byte *)initialData;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] (byte *)(el->initialData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2923,13 +2923,13 @@ void Serialiser::Serialise(const char *name, VkPipelineLayoutCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkPipelineLayoutCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkPipelineLayoutCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pSetLayouts;
|
||||
delete [] pPushConstantRanges;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pSetLayouts;
|
||||
delete [] el->pPushConstantRanges;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2955,12 +2955,12 @@ void Serialiser::Serialise(const char *name, VkShaderModuleCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkShaderModuleCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkShaderModuleCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] (byte *)pCode;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] (byte *)(el->pCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3126,74 +3126,74 @@ void Serialiser::Serialise(const char *name, VkGraphicsPipelineCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkGraphicsPipelineCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkGraphicsPipelineCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
if (pVertexInputState)
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
if (el->pVertexInputState)
|
||||
{
|
||||
RDCASSERT(pVertexInputState->pNext == NULL); // otherwise delete
|
||||
delete pVertexInputState->pVertexBindingDescriptions;
|
||||
delete pVertexInputState->pVertexAttributeDescriptions;
|
||||
delete pVertexInputState;
|
||||
RDCASSERT(el->pVertexInputState->pNext == NULL); // otherwise delete
|
||||
delete el->pVertexInputState->pVertexBindingDescriptions;
|
||||
delete el->pVertexInputState->pVertexAttributeDescriptions;
|
||||
delete el->pVertexInputState;
|
||||
}
|
||||
if (pInputAssemblyState)
|
||||
if (el->pInputAssemblyState)
|
||||
{
|
||||
RDCASSERT(pInputAssemblyState->pNext == NULL); // otherwise delete
|
||||
delete pInputAssemblyState;
|
||||
RDCASSERT(el->pInputAssemblyState->pNext == NULL); // otherwise delete
|
||||
delete el->pInputAssemblyState;
|
||||
}
|
||||
if (pTessellationState)
|
||||
if (el->pTessellationState)
|
||||
{
|
||||
RDCASSERT(pTessellationState->pNext == NULL); // otherwise delete
|
||||
delete pTessellationState;
|
||||
RDCASSERT(el->pTessellationState->pNext == NULL); // otherwise delete
|
||||
delete el->pTessellationState;
|
||||
}
|
||||
if (pViewportState)
|
||||
if (el->pViewportState)
|
||||
{
|
||||
RDCASSERT(pViewportState->pNext == NULL); // otherwise delete
|
||||
delete [] pViewportState->pViewports;
|
||||
delete [] pViewportState->pScissors;
|
||||
delete pViewportState;
|
||||
RDCASSERT(el->pViewportState->pNext == NULL); // otherwise delete
|
||||
delete [] el->pViewportState->pViewports;
|
||||
delete [] el->pViewportState->pScissors;
|
||||
delete el->pViewportState;
|
||||
}
|
||||
if (pRasterState)
|
||||
if (el->pRasterState)
|
||||
{
|
||||
RDCASSERT(pRasterState->pNext == NULL); // otherwise delete
|
||||
delete pRasterState;
|
||||
RDCASSERT(el->pRasterState->pNext == NULL); // otherwise delete
|
||||
delete el->pRasterState;
|
||||
}
|
||||
if (pMultisampleState)
|
||||
if (el->pMultisampleState)
|
||||
{
|
||||
RDCASSERT(pMultisampleState->pNext == NULL); // otherwise delete
|
||||
delete pMultisampleState->pSampleMask;
|
||||
delete pMultisampleState;
|
||||
RDCASSERT(el->pMultisampleState->pNext == NULL); // otherwise delete
|
||||
delete el->pMultisampleState->pSampleMask;
|
||||
delete el->pMultisampleState;
|
||||
}
|
||||
if (pDepthStencilState)
|
||||
if (el->pDepthStencilState)
|
||||
{
|
||||
RDCASSERT(pDepthStencilState->pNext == NULL); // otherwise delete
|
||||
delete pDepthStencilState;
|
||||
RDCASSERT(el->pDepthStencilState->pNext == NULL); // otherwise delete
|
||||
delete el->pDepthStencilState;
|
||||
}
|
||||
if (pColorBlendState)
|
||||
if (el->pColorBlendState)
|
||||
{
|
||||
RDCASSERT(pColorBlendState->pNext == NULL); // otherwise delete
|
||||
delete [] pColorBlendState->pAttachments;
|
||||
delete pColorBlendState;
|
||||
RDCASSERT(el->pColorBlendState->pNext == NULL); // otherwise delete
|
||||
delete [] el->pColorBlendState->pAttachments;
|
||||
delete el->pColorBlendState;
|
||||
}
|
||||
if (pDynamicState)
|
||||
if (el->pDynamicState)
|
||||
{
|
||||
RDCASSERT(pDynamicState->pNext == NULL); // otherwise delete
|
||||
delete [] pDynamicState->pDynamicStates;
|
||||
delete pDynamicState;
|
||||
RDCASSERT(el->pDynamicState->pNext == NULL); // otherwise delete
|
||||
delete [] el->pDynamicState->pDynamicStates;
|
||||
delete el->pDynamicState;
|
||||
}
|
||||
for (uint32_t i=0; i<stageCount; i++)
|
||||
for (uint32_t i=0; i<el->stageCount; i++)
|
||||
{
|
||||
RDCASSERT(pStages[i].pNext == NULL); // otherwise delete
|
||||
if (pStages[i].pSpecializationInfo)
|
||||
RDCASSERT(el->pStages[i].pNext == NULL); // otherwise delete
|
||||
if (el->pStages[i].pSpecializationInfo)
|
||||
{
|
||||
delete [] (byte *)pStages[i].pSpecializationInfo->pData;
|
||||
delete [] pStages[i].pSpecializationInfo->pMap;
|
||||
delete pStages[i].pSpecializationInfo;
|
||||
delete [] (byte *)(el->pStages[i].pSpecializationInfo->pData);
|
||||
delete [] el->pStages[i].pSpecializationInfo->pMap;
|
||||
delete el->pStages[i].pSpecializationInfo;
|
||||
}
|
||||
}
|
||||
delete [] pStages;
|
||||
delete [] el->pStages;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3237,12 +3237,12 @@ void Serialiser::Serialise(const char *name, VkDescriptorPoolCreateInfo &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkDescriptorPoolCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkDescriptorPoolCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pTypeCount;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pTypeCount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3278,12 +3278,12 @@ void Serialiser::Serialise(const char *name, VkWriteDescriptorSet &el)
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkWriteDescriptorSet>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkWriteDescriptorSet* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
delete [] pDescriptors;
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
delete [] el->pDescriptors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3359,16 +3359,16 @@ void Serialiser::Serialise(const char *name, VkDescriptorSetLayoutCreateInfo &el
|
||||
}
|
||||
|
||||
template<>
|
||||
Serialiser::Deserialise<VkDescriptorSetLayoutCreateInfo>::~Deserialise()
|
||||
void Serialiser::Deserialise(const VkDescriptorSetLayoutCreateInfo* const el) const
|
||||
{
|
||||
if(m_Mode == READING)
|
||||
{
|
||||
RDCASSERT(pNext == NULL); // otherwise delete
|
||||
for (uint32_t i=0; i<count; i++)
|
||||
RDCASSERT(el->pNext == NULL); // otherwise delete
|
||||
for (uint32_t i=0; i<el->count; i++)
|
||||
{
|
||||
delete [] pBinding[i].pImmutableSamplers;
|
||||
delete [] el->pBinding[i].pImmutableSamplers;
|
||||
}
|
||||
delete [] pBinding;
|
||||
delete [] el->pBinding;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -133,12 +133,6 @@ template<> void Serialiser::Serialise(const char *name, VkImageResolve &el);
|
||||
|
||||
template<> void Serialiser::Serialise(const char *name, VkSwapchainCreateInfoKHR &el);
|
||||
|
||||
//template<> class Serialiser::Deserialise<VkDeviceCreateInfo>;
|
||||
|
||||
// template<> class Serialiser::Deserialise : VkDeviceCreateInfo;
|
||||
|
||||
//template<> void Serialiser::Deserialize(const VkDeviceCreateInfo* const el) const;
|
||||
|
||||
#pragma region Chunks
|
||||
|
||||
enum VulkanChunkType
|
||||
|
||||
@@ -517,7 +517,7 @@ bool WrappedVulkan::Serialise_vkCmdBeginRenderPass(
|
||||
VkRenderPassContents contents)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(cmdBuffer));
|
||||
SERIALISE_ELEMENT_CLASS(VkRenderPassBeginInfo, beginInfo, *pRenderPassBegin);
|
||||
SERIALISE_ELEMENT(VkRenderPassBeginInfo, beginInfo, *pRenderPassBegin);
|
||||
SERIALISE_ELEMENT(VkRenderPassContents, cont, contents);
|
||||
|
||||
if(m_State < WRITING)
|
||||
|
||||
@@ -31,7 +31,7 @@ bool WrappedVulkan::Serialise_vkCreateDescriptorPool(
|
||||
VkDescriptorPool* pDescriptorPool)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkDescriptorPoolCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkDescriptorPoolCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pDescriptorPool));
|
||||
|
||||
if(m_State == READING)
|
||||
@@ -99,7 +99,7 @@ bool WrappedVulkan::Serialise_vkCreateDescriptorSetLayout(
|
||||
VkDescriptorSetLayout* pSetLayout)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkDescriptorSetLayoutCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkDescriptorSetLayoutCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pSetLayout));
|
||||
|
||||
// this creation info is needed at capture time (for creating/updating descriptor set bindings)
|
||||
@@ -337,7 +337,7 @@ bool WrappedVulkan::Serialise_vkUpdateDescriptorSets(
|
||||
VkCopyDescriptorSet copyDesc;
|
||||
if(writes)
|
||||
{
|
||||
SERIALISE_ELEMENT_CLASS(VkWriteDescriptorSet, w, *pDescriptorWrites);
|
||||
SERIALISE_ELEMENT(VkWriteDescriptorSet, w, *pDescriptorWrites);
|
||||
writeDesc = w;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -367,7 +367,7 @@ bool WrappedVulkan::Serialise_vkCreateFramebuffer(
|
||||
VkFramebuffer* pFramebuffer)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkFramebufferCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkFramebufferCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pFramebuffer));
|
||||
|
||||
if(m_State == READING)
|
||||
@@ -558,7 +558,7 @@ bool WrappedVulkan::Serialise_vkCreateRenderPass(
|
||||
VkRenderPass* pRenderPass)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkRenderPassCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkRenderPassCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pRenderPass));
|
||||
|
||||
if(m_State == READING)
|
||||
|
||||
@@ -511,7 +511,7 @@ bool WrappedVulkan::Serialise_vkCreateBuffer(
|
||||
VkBuffer* pBuffer)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkBufferCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(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_CLASS(VkImageCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkImageCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pImage));
|
||||
|
||||
if(m_State == READING)
|
||||
|
||||
@@ -34,7 +34,7 @@ bool WrappedVulkan::Serialise_vkCreatePipelineLayout(
|
||||
VkPipelineLayout* pPipelineLayout)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkPipelineLayoutCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkPipelineLayoutCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pPipelineLayout));
|
||||
|
||||
if(m_State == READING)
|
||||
@@ -114,7 +114,7 @@ bool WrappedVulkan::Serialise_vkCreateShaderModule(
|
||||
VkShaderModule* pShaderModule)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkShaderModuleCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkShaderModuleCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pShaderModule));
|
||||
|
||||
if(m_State == READING)
|
||||
@@ -267,7 +267,7 @@ bool WrappedVulkan::Serialise_vkCreatePipelineCache(
|
||||
VkPipelineCache* pPipelineCache)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT_CLASS(VkPipelineCacheCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(VkPipelineCacheCreateInfo, info, *pCreateInfo);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pPipelineCache));
|
||||
|
||||
if(m_State == READING)
|
||||
@@ -337,7 +337,7 @@ bool WrappedVulkan::Serialise_vkCreateGraphicsPipelines(
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, devId, GetResID(device));
|
||||
SERIALISE_ELEMENT(ResourceId, cacheId, GetResID(pipelineCache));
|
||||
SERIALISE_ELEMENT_CLASS(VkGraphicsPipelineCreateInfo, info, *pCreateInfos);
|
||||
SERIALISE_ELEMENT(VkGraphicsPipelineCreateInfo, info, *pCreateInfos);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResID(*pPipelines));
|
||||
|
||||
if(m_State == READING)
|
||||
|
||||
@@ -432,20 +432,8 @@ class Serialiser
|
||||
DebugPrint("%s: %s\n", name, ToStr::Get<T>(el).c_str());
|
||||
}
|
||||
|
||||
// object to serialise a single element
|
||||
// used to instantiate destructors for structs
|
||||
// with allocated members
|
||||
template<class T>
|
||||
class Deserialise : public T {
|
||||
public:
|
||||
Deserialise(T t) : T(t) {}
|
||||
Deserialise() {}
|
||||
virtual ~Deserialise() {}
|
||||
Mode m_Mode;
|
||||
};
|
||||
|
||||
// function to deallocate members
|
||||
template<class T> void Deserialize(const T* const el) const {}
|
||||
template<class T> void Deserialise(const T* const el) const {}
|
||||
|
||||
template<typename X>
|
||||
void Serialise(const char *name, std::vector<X> &el)
|
||||
@@ -775,7 +763,7 @@ template<class T>
|
||||
struct ScopedDeserialise
|
||||
{
|
||||
ScopedDeserialise(const Serialiser* const ser, const T* const t) : m_ser(ser), m_t(t) {}
|
||||
~ScopedDeserialise() { m_ser->Deserialize(m_t); }
|
||||
~ScopedDeserialise() { m_ser->Deserialise(m_t); }
|
||||
const Serialiser* const m_ser;
|
||||
const T* const m_t;
|
||||
};
|
||||
@@ -789,7 +777,6 @@ struct ScopedDeserialise
|
||||
#define SCOPED_SERIALISE_SMALL_CONTEXT(n) ScopedContext scope(GET_SERIALISER, GetChunkName(n), n, true);
|
||||
|
||||
#define SERIALISE_ELEMENT(type, name, inValue) type name; ScopedDeserialise<type> CONCAT(deserialise_, name)(m_pSerialiser, &name); if(m_State >= WRITING) name = (inValue); GET_SERIALISER->Serialise(#name, name);
|
||||
#define SERIALISE_ELEMENT_CLASS(type, name, inValue) Serialiser::Deserialise<type> name; if(m_State >= WRITING) { static_cast<type&>(name) = (inValue); name.m_Mode = Serialiser::WRITING; } else name.m_Mode = Serialiser::READING; GET_SERIALISER->Serialise(#name, static_cast<type&>(name));
|
||||
#define SERIALISE_ELEMENT_OPT(type, name, inValue, Condition) type name = type(); if(Condition) { if(m_State >= WRITING) name = (inValue); GET_SERIALISER->Serialise(#name, name); }
|
||||
#define SERIALISE_ELEMENT_ARR(type, name, inValues, count) type *name = new type[count]; for(size_t serialiseIdx=0; serialiseIdx < count; serialiseIdx++) { if(m_State >= WRITING) name[serialiseIdx] = (inValues)[serialiseIdx]; GET_SERIALISER->Serialise(#name, name[serialiseIdx]); }
|
||||
#define SERIALISE_ELEMENT_ARR_OPT(type, name, inValues, count, Condition) type *name = NULL; if(Condition) { name = new type[count]; for(size_t serialiseIdx=0; serialiseIdx < count; serialiseIdx++) { if(m_State >= WRITING) name[serialiseIdx] = (inValues)[serialiseIdx]; GET_SERIALISER->Serialise(#name, name[serialiseIdx]); } }
|
||||
|
||||
Reference in New Issue
Block a user