static internal void UnregisterRenderMode(SpriteRenderModeSetting settings)
        {
            SpriteRenderModeGroup group = renderModeGroup[(int)settings.renderMode];

            foreach (Material mat in group.materials.Values)
            {
                if (Application.isPlaying)
                {
                    Object.Destroy(mat);
                }
                else
                {
                    Object.DestroyImmediate(mat);
                }
            }
        }
Exemplo n.º 2
0
        static internal void RegisterRenderMode(SpriteRenderModeSetting setting)
        {
            if (setting == null)
            {
                return;
            }
            int idx = (int)setting.renderMode;
            SpriteRenderModeGroup group = renderModeGroup[idx];

            if (group == null)
            {
                renderModeGroup[idx] = group = new SpriteRenderModeGroup();
                group.isValid        = true;
            }
            group.setting = setting;
        }
        static public Material GetMaterial(SpriteRenderMode rm, Texture tex)
        {
            int idx = rm == SpriteRenderMode.None ? 0 : (int)rm;
            SpriteRenderModeGroup group = renderModeGroup[idx];
            Material ret = null;

            if (group != null)
            {
                if ((ret = group.materials[tex] as Material) == null)
                {
                    ret                  = new Material(group.setting.shader);
                    ret.mainTexture      = tex;
                    group.materials[tex] = ret;
                    group.setting.materials.Add(ret);
                }
            }
            else
            {
                Debug.LogError("unknown RenderMode " + rm);
            }
            return(ret);
        }
        internal static bool IsSemiTransparent(SpriteRenderMode rm)
        {
            SpriteRenderModeGroup group = renderModeGroup[(int)rm];

            return(group != null ? group.setting.sortByDepth : false);
        }
        static internal void UnregisterRenderMode(SpriteRenderModeSetting settings)
        {
            SpriteRenderModeGroup group = renderModeGroup[(int)settings.renderMode];

            //todo:remove material owner by settings
        }
 static internal void RegisterRenderMode(SpriteRenderModeSetting setting)
 {
     if (setting == null) return;
     int idx = (int)setting.renderMode;
     SpriteRenderModeGroup group = renderModeGroup[idx];
     if (group == null)
     {
         renderModeGroup[idx] = group = new SpriteRenderModeGroup();
         group.isValid = true;
     }
     group.setting = setting;
 }