Пример #1
0
    public int Compare(object e1, object e2)
    {
        SingleEffectEvla singleEffectEvla1 = e1 as SingleEffectEvla;
        SingleEffectEvla singleEffectEvla2 = e2 as SingleEffectEvla;

        if (singleEffectEvla1 == null || singleEffectEvla2 == null)
        {
            throw new ArgumentException("null argument");
        }

        EffectEvlaData2 effectEvlaData1 = singleEffectEvla1.GetEffectEvlaData();
        EffectEvlaData2 effectEvlaData2 = singleEffectEvla2.GetEffectEvlaData();

        double pixRate1 = effectEvlaData1.GetPixRate();
        double pixRate2 = effectEvlaData2.GetPixRate();

        if (pixRate1 < pixRate2)
        {
            return(1);
        }
        if (pixRate1 > pixRate2)
        {
            return(-1);
        }
        return(0);
    }
    public SingleEffectEvla(int qualityIndex)
    {
        _effectEvlaData = new EffectEvlaData2[EffectEvla2.Qualitys.Length];
        for (int i = 0; i < _effectEvlaData.Length; i++)
        {
            _effectEvlaData[i]         = new EffectEvlaData2();
            _effectEvlaData[i].quality = EffectEvla2.Qualitys[i];
        }

        ChangeQuality(qualityIndex);
    }
    public void UpdateOneData(long pixDraw, long pixActualDraw)
    {
        if (pixDraw <= 0 && pixActualDraw <= 0)
        {
            //Debug.LogError("update " + pixDraw + "pixActualDraw" + pixActualDraw+"name"+ _effectEvlaData.effectPath);
            return;
        }
        EffectEvlaData2 effectEvlaData2 = GetEffectEvlaData();

        effectEvlaData2.pixTotal           = effectEvlaData2.pixTotal + pixDraw;
        effectEvlaData2.pixActualDrawTotal = effectEvlaData2.pixActualDrawTotal + pixActualDraw;
        effectEvlaData2.pixDrawTimes       = effectEvlaData2.pixDrawTimes + 1;

        //Debug.Log("update one" + pixDraw + "pixActualDraw" + pixActualDraw + _effectEvlaData.effectPath);
    }
Пример #4
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;
    }
Пример #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 void WriteData(EffectEvlaData2[] effectEvlaData)
    {
        if (_streamWriter == null)
        {
            return;
        }

        string data = effectEvlaData[effectEvlaData.Length - 1].effectPath;

        for (int i = effectEvlaData.Length - 1; i >= 0; i--)
        {
            EffectEvlaData2 effectEvlaData2 = effectEvlaData[i];
            data = string.Format("{0},{1},{2},{3},{4}", data,
                                 effectEvlaData2.GetPixDrawAverage(),
                                 effectEvlaData2.GetPixActualDrawAverage(),
                                 effectEvlaData2.GetPixRate(),
                                 effectEvlaData2.tape);

            /*data = data + ","
             + effectEvlaData2.GetPixDrawAverage() + ","
             + effectEvlaData2.GetPixActualDrawAverage() + ","
             + effectEvlaData2.GetPixRate() + ","
             + effectEvlaData2.tape;*/
        }

        //Debug.Log(data);

        /*string data = string.Format("{0},{1},{2},{3},{4}",
         *  effectEvlaData.effectPath, effectEvlaData.GetPixDrawAverage(),
         *  effectEvlaData.GetPixActualDrawAverage(),
         *  effectEvlaData.GetPixRate(),
         *  effectEvlaData.tape);*/
        //Debug.Log("effectEvlaData.GetPixDrawAverage()"+ effectEvlaData.GetPixDrawAverage()+"d "+ effectEvlaData.GetPixActualDrawAverage()+"times "+ effectEvlaData.pixDrawTimes + "a "+effectEvlaData.pixActualDrawTotal);
        try
        {
            _streamWriter.WriteLine(data);
        }
        catch (Exception e)
        {
            Debug.LogError(e.ToString());
        }
    }
    public void RecordTape()
    {
        int tapeHigh, tapeMiddle, tapeLow;

        GetEffectTape(out tapeHigh, out tapeMiddle, out tapeLow);
        for (int i = 0; i < _effectEvlaData.Length; i++)
        {
            EffectEvlaData2 effectEvlaData2 = _effectEvlaData[i];
            //"High", "Middle", "Low"
            if (effectEvlaData2.quality == "High")
            {
                effectEvlaData2.tape = tapeHigh;
            }
            else if (effectEvlaData2.quality == "Middle")
            {
                effectEvlaData2.tape = tapeMiddle;
            }
            else
            {
                effectEvlaData2.tape = tapeLow;
            }
        }
    }