public void Dispose()
 {
     ComputeUtilities.Release(ref positionsBuffer);
     ComputeUtilities.Release(ref velocitiesBuffer);
     ComputeUtilities.Release(ref lifetimesBuffer);
     ComputeUtilities.Release(predictedBuffers);
     ComputeUtilities.Release(ref deadBuffer);
     ComputeUtilities.Release(ref aliveBuffer);
     ComputeUtilities.Release(ref counter);
     ComputeUtilities.Release(ref emitCounter);
     ComputeUtilities.Release(ref argsBuffer);
     mesh = null;
     hash.Dispose();
 }
 public void Dispose()
 {
     ComputeUtilities.Release(ref explosionsBuffer);
     ComputeUtilities.Release(positionsBuffers);
     ComputeUtilities.Release(velocitiesBuffers);
     ComputeUtilities.Release(ref lifetimesBuffer);
     ComputeUtilities.Release(ref motionsBuffer);
     ComputeUtilities.Release(ref colorsBuffer);
     ComputeUtilities.Release(ref deadBuffer);
     ComputeUtilities.Release(ref aliveBuffer);
     ComputeUtilities.Release(ref counter);
     ComputeUtilities.Release(ref counterIndex);
     ComputeUtilities.Release(ref emitCounter);
     ComputeUtilities.Release(ref argsBuffer);
     mesh = null;
     hash.Dispose();
 }