コード例 #1
0
            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);
            }
コード例 #2
0
            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);
            }
コード例 #3
0
 public void Dispose()
 {
     m_texture?.Dispose();
     m_detector.Dispose();
 }