private void AddToCache(WorkingMaterial material) { string inputName = m_textureInfoList[0].InputName; WorkingTexture texture = material.GetTexture(inputName); if (texture == null) { texture = m_defaultTextures[m_textureInfoList[0].Type]; } TexturePacker.MaterialTexture materialTexture = new TexturePacker.MaterialTexture(); if (m_enableTintColor) { Color tintColor = material.GetColor(m_tintColorName); texture = texture.Clone(); ApplyTintColor(texture, tintColor); materialTexture.Add(texture); texture.Dispose(); } else { materialTexture.Add(texture); } for (int ti = 1; ti < m_textureInfoList.Count; ++ti) { string input = m_textureInfoList[ti].InputName; WorkingTexture tex = material.GetTexture(input); if (tex == null) { tex = m_defaultTextures[m_textureInfoList[ti].Type]; } materialTexture.Add(tex); } m_textureCache.Add(material.Guid, materialTexture); }
private DisposableList <MaterialTexture> CreateResizedTextures(int newWidth, int newHeight) { DisposableList <MaterialTexture> resized = new DisposableList <MaterialTexture>(); for (int i = 0; i < m_textures.Count; ++i) { MaterialTexture newMT = new MaterialTexture(); for (int k = 0; k < m_textures[i].Count; ++k) { int targetWidth = Mathf.Min(newWidth, m_textures[i][k].Width); int targetHeight = Mathf.Min(newHeight, m_textures[i][k].Height); WorkingTexture resizedTexture = m_textures[i][k].Resize(Allocator.Persistent, targetWidth, targetHeight); newMT.Add(resizedTexture); resizedTexture.Dispose(); } resized.Add(newMT); } return(resized); }
public void Dispose() { m_texture?.Dispose(); m_detector.Dispose(); }