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); }
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; }
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; } } }