From 2dff3dec2e410562d48b2d3727e24ecbb1dd8c65 Mon Sep 17 00:00:00 2001 From: Igor Novikov Date: Tue, 13 Feb 2018 18:55:29 +0500 Subject: [PATCH] Fix memory leak for vertex buffers in dx103DFluidGrid. --- src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.cpp | 10 +++++++++- src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.cpp b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.cpp index e74cac74930..f351a0ac2cc 100644 --- a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.cpp +++ b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.cpp @@ -35,7 +35,7 @@ inline void ComputeRowColsForFlat3DTexture(int depth, int* outCols, int* outRows dx103DFluidGrid::dx103DFluidGrid() {} dx103DFluidGrid::~dx103DFluidGrid() { - // TODO: implement init/deinit functionality and guards + DestroyVertexBuffers(); } void dx103DFluidGrid::Initialize(int gridWidth, int gridHeight, int gridDepth) @@ -145,6 +145,14 @@ void dx103DFluidGrid::CreateVertexBuffers() boundaryLines = NULL; } +void dx103DFluidGrid::DestroyVertexBuffers() +{ + _RELEASE(m_pRenderQuadBuffer); + _RELEASE(m_pSlicesBuffer); + _RELEASE(m_pBoundarySlicesBuffer); + _RELEASE(m_pBoundaryLinesBuffer); +} + void dx103DFluidGrid::InitScreenSlice(VS_INPUT_FLUIDSIM_STRUCT** vertices, int z, int& index) { VS_INPUT_FLUIDSIM_STRUCT tempVertex1; diff --git a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.h b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.h index e9cd928c25c..5c111d6e812 100644 --- a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.h +++ b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidGrid.h @@ -19,6 +19,7 @@ class dx103DFluidGrid private: void CreateVertexBuffers(); + void DestroyVertexBuffers(); void InitScreenSlice(VS_INPUT_FLUIDSIM_STRUCT** vertices, int z, int& index); void InitSlice(int z, VS_INPUT_FLUIDSIM_STRUCT** vertices, int& index);