/// <summary> /// Release all the managed resources /// </summary> public void Release() { if (ArrayTexture != null) { ArrayTexture.Destroy(); ArrayTexture = null; } }
/// <summary> /// Launches the Texture2DArray generation (already handles NeedsToUpdateVolumeTexture and alwaysGenerateOnUpdate parameters check) /// </summary> public void Generate() { if (NeedsToUpdateTexture || alwaysGenerateOnUpdate) { if (_texturesList.Count > 0) { if (NeedsToUpdateTexture) { if (ArrayTexture != null) { ArrayTexture.Destroy(); ArrayTexture = null; } ArrayTexture = new Texture2DArray(RequiredSizeX, RequiredSizeY, _texturesList.Count, _requiredTextureFormat, false, _linear); } for (int i = 0; i < _texturesList.Count; ++i) { Graphics.CopyTexture(_texturesList[i], 0, 0, 0, 0, RequiredSizeX, RequiredSizeY, ArrayTexture, i, 0, 0, 0); } HasTexture = true; } else { if (ArrayTexture != null) { ArrayTexture.Destroy(); ArrayTexture = null; } HasTexture = false; } NeedsToUpdateTexture = false; RaiseTextureUpdatedEvent(); } }