public void Release()
 {
     for (int i = 0; i < mMaxLevel; i++)
     {
         FluidCore.SafeRelease(mResidualTexArray[i]);
         FluidCore.SafeRelease(mErrorTexArray[i]);
         FluidCore.SafeRelease(mErrorTexSwapArray[i]);
         FluidCore.SafeRelease(mRightPoissonTexArray[i]);
         FluidCore.SafeRelease(mCellMakerArray[i]);
         FluidCore.SafeRelease(mLevelsetArray[i]);
     }
 }
 private void OnDestroy()
 {
     FluidCore.SafeRelease(mVelocityU[READ]);
     FluidCore.SafeRelease(mVelocityU[WRITE]);
     FluidCore.SafeRelease(mVelocityV[READ]);
     FluidCore.SafeRelease(mVelocityV[WRITE]);
     FluidCore.SafeRelease(mLevelSet[READ]);
     FluidCore.SafeRelease(mLevelSet[WRITE]);
     FluidCore.SafeRelease(mGridMarker);
     FluidCore.SafeRelease(mGridValidU[READ]);
     FluidCore.SafeRelease(mGridValidU[WRITE]);
     FluidCore.SafeRelease(mGridValidV[READ]);
     FluidCore.SafeRelease(mGridValidV[WRITE]);
     FluidCore.SafeRelease(mDivergence);
     FluidCore.SafeRelease(mPressure);
     FluidCore.SafeRelease(mPressureWrite);
     FluidCore.SafeRelease(mPoisson0);
     FluidCore.SafeRelease(mPoisson1);
     FluidCore.SafeRelease(mPoisson2);
     if (mMultiGridSolver != null)
     {
         mMultiGridSolver.Release();
     }
 }