tests:Add destructors for 4 objects
Textures, Pipelines, Shaders and Samplers
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 59d5302..1524e28 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -753,6 +753,10 @@
m_textureViewInfo.view = m_textureView;
}
+XglTextureObj::~XglTextureObj()
+{
+ if (m_texture != XGL_NULL_HANDLE) xglDestroyObject(m_texture);
+}
void XglTextureObj::ChangeColors(uint32_t color1, uint32_t color2)
{
@@ -797,6 +801,10 @@
assert(!err);
}
+XglSamplerObj::~XglSamplerObj()
+{
+ if (m_sampler != XGL_NULL_HANDLE) xglDestroyObject(m_sampler);
+}
/*
* Basic ConstantBuffer constructor. Then use create methods to fill in the details.
@@ -1073,7 +1081,10 @@
assert(!err);
}
}
-
+XglShaderObj::~XglShaderObj()
+{
+ if (m_shader != XGL_NULL_HANDLE) xglDestroyObject(m_shader);
+}
XglPipelineObj::XglPipelineObj(XglDevice *device)
{
XGL_RESULT err;
@@ -1184,7 +1195,10 @@
m_vertexBufferObjs[i]->Bind(m_cmdBuffer, m_vertexBufferObjs[i]->m_constantBufferView.offset, m_vertexBufferBindings[i]);
}
}
-
+XglPipelineObj::~XglPipelineObj()
+{
+ if (m_pipeline != XGL_NULL_HANDLE) xglDestroyObject(m_pipeline);
+}
XglMemoryRefManager::XglMemoryRefManager() {
diff --git a/tests/xglrenderframework.h b/tests/xglrenderframework.h
index bc61c7f..ea1b576 100644
--- a/tests/xglrenderframework.h
+++ b/tests/xglrenderframework.h
@@ -153,6 +153,7 @@
{
public:
XglTextureObj(XglDevice *device);
+ ~XglTextureObj();
void ChangeColors(uint32_t color1, uint32_t color2);
XGL_IMAGE m_texture;
XGL_IMAGE_VIEW_ATTACH_INFO m_textureViewInfo;
@@ -171,6 +172,7 @@
{
public:
XglSamplerObj(XglDevice *device);
+ ~XglSamplerObj();
XGL_SAMPLER m_sampler;
protected:
@@ -210,6 +212,7 @@
{
public:
XglShaderObj(XglDevice *device, const char * shaderText, XGL_PIPELINE_SHADER_STAGE stage, XglRenderFramework *framework);
+ ~XglShaderObj();
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO* GetStageCreateInfo(XglDescriptorSetObj *descriptorSet);
void BindShaderEntitySlotToMemory(int slot, XGL_DESCRIPTOR_SET_SLOT_TYPE type, XglConstantBufferObj *constantBuffer);
void BindShaderEntitySlotToImage(int slot, XGL_DESCRIPTOR_SET_SLOT_TYPE type, XglTextureObj *texture);
@@ -236,6 +239,7 @@
{
public:
XglPipelineObj(XglDevice *device);
+ ~XglPipelineObj();
void BindPipelineCommandBuffer(XGL_CMD_BUFFER m_cmdBuffer, XglDescriptorSetObj *descriptorSet);
void AddShader(XglShaderObj* shaderObj);
void AddVertexInputAttribs(XGL_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION* vi_attrib, int count);