From 7a1840afdec9d2b77730a5c0d99c7e453a436428 Mon Sep 17 00:00:00 2001 From: DMagic Date: Sat, 15 Aug 2020 11:35:38 -0700 Subject: [PATCH] Clean up old texture --- .../SCAN_UI/UI_Framework/SCANEdgeDetect.cs | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/SCANsat/SCAN_UI/UI_Framework/SCANEdgeDetect.cs b/SCANsat/SCAN_UI/UI_Framework/SCANEdgeDetect.cs index fd6e23187..80903cdde 100644 --- a/SCANsat/SCAN_UI/UI_Framework/SCANEdgeDetect.cs +++ b/SCANsat/SCAN_UI/UI_Framework/SCANEdgeDetect.cs @@ -13,27 +13,38 @@ public class SCANEdgeDetect : MonoBehaviour private Material _edgeDetectMaterial = null; + private Texture2D _rampTexture; + private void Start() { SetMaterial(); } + private void OnDestroy() + { + if (_rampTexture != null) + { + Destroy(_rampTexture); + _rampTexture = null; + } + } + private void SetMaterial() { _edgeDetectMaterial = new Material(SCAN_UI_Loader.EdgeDetectShader); - Texture2D t = new Texture2D(256, 1, TextureFormat.RGB24, false); + _rampTexture = new Texture2D(256, 1, TextureFormat.RGB24, false); // ramp texture to render everything in dark shades of Amber, // except originally dark lines, which become bright Amber for (int i = 0; i < 256; ++i) - t.SetPixel(i, 0, palette.lerp(palette.black, palette.xkcd_Amber, i / 1024f)); + _rampTexture.SetPixel(i, 0, palette.lerp(palette.black, palette.xkcd_Amber, i / 1024f)); for (int i = 0; i < 10; ++i) - t.SetPixel(i, 0, palette.xkcd_Amber); + _rampTexture.SetPixel(i, 0, palette.xkcd_Amber); - t.Apply(); + _rampTexture.Apply(); - _edgeDetectMaterial.SetTexture("_RampTex", t); + _edgeDetectMaterial.SetTexture("_RampTex", _rampTexture); Vector2 sensitivity = new Vector2(_sensitivityDepth, _sensitivityNormals); _edgeDetectMaterial.SetVector("_Sensitivity", new Vector4(sensitivity.x, sensitivity.y, 1.0f, sensitivity.y)); _edgeDetectMaterial.SetFloat("_SampleDistance", _sampleDist);