Example #1
0
    public override void Init(Camera camera)
    {
        CSVEffectEvlaHelper.GetInstance();

        base.Init(camera);

        ChangeQuality(Qualitys[_qualityIndex - 1]);

        InitData(camera);
    }
    public static CSVEffectEvlaHelper GetInstance()
    {
        if (_csvEffectEvlaHelper == null)
        {
            _csvEffectEvlaHelper = new CSVEffectEvlaHelper();
            _csvEffectEvlaHelper.Init();
        }

        return(_csvEffectEvlaHelper);
    }
Example #3
0
    void CheckAndSaveTexture(SingleEffectEvla singleEffectEvla, bool isAutoSavePic, int maxOverdrawSaveNumber)
    {
        if (!isAutoSavePic)
        {
            return;
        }
        // 获取data
        EffectEvlaData2 effectEvlaData2 = singleEffectEvla.GetEffectEvlaData();
        double          overdrawRate    = effectEvlaData2.GetPixRate();

        if (overdrawRate < maxOverdrawSaveNumber)
        {
            return;
        }

        CSVEffectEvlaHelper cSVEffectEvlaHelper = CSVEffectEvlaHelper.GetInstance();
        string   directoryPath = cSVEffectEvlaHelper.GetDirectoryPath();
        FileInfo fi            = new FileInfo(directoryPath);

        if (!fi.Directory.Exists)
        {
            fi.Directory.Create();
        }
        string fileName = string.Format("{0}/{1}{2}.png", directoryPath, effectEvlaData2.GetEffectName(), effectEvlaData2.quality);

        RenderTexture activeTextrue = RenderTexture.active;
        RenderTexture rt            = new RenderTexture(256, 256, 0, RenderTextureFormat.ARGB32);

        _camera.targetTexture = rt;
        _camera.Render();
        RenderTexture.active = rt;
        Texture2D png = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false);

        png.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
        byte[] bytes = png.EncodeToPNG();

        FileStream   file   = File.Open(fileName, FileMode.Create);
        BinaryWriter writer = new BinaryWriter(file);

        writer.Write(bytes);
        file.Close();

        RenderTexture.active = activeTextrue;
        Texture2D.DestroyImmediate(png);
        rt.Release();

        _camera.targetTexture = null;
    }
Example #4
0
    public void Release()
    {
        if (isRealese)
        {
            return;
        }
        isRealese = true;
        for (int i = 0; i < singleEffectEvlas.Length; i++)
        {
            SingleEffectEvla singleEffectEvla = singleEffectEvlas[i];
            singleEffectEvla.UnLoadEffect();
        }
        singleEffectEvlas = null;

        CSVEffectEvlaHelper.GetInstance();
        CSVEffectEvlaHelper.DestroyInstance();
    }
Example #5
0
    public void SaveData()
    {
        // 排序
        Array.Sort(singleEffectEvlas, new SingleEffectEvlaComparer2());

        for (int i = 0; i < singleEffectEvlas.Length; i++)
        {
            SingleEffectEvla singleEffectEvla = singleEffectEvlas[i];
            EffectEvlaData2  effectEvlaData2  = singleEffectEvla.GetEffectEvlaData();
            // pixrate大于1.5的才记录
            if (effectEvlaData2.GetPixRate() >= 1.5f)
            {
                CSVEffectEvlaHelper cSVEffectEvlaHelper = CSVEffectEvlaHelper.GetInstance();
                cSVEffectEvlaHelper.WriteData(singleEffectEvla.GetEffectEvlaDatas());
                cSVEffectEvlaHelper.Flush();
            }
        }
    }
 public static void DestroyInstance()
 {
     _csvEffectEvlaHelper.Release();
     _csvEffectEvlaHelper = null;
 }