public static void DrawMinMaxFilledCurve(Rect r, AudioCurveRendering.AudioMinMaxCurveAndColorEvaluator eval) { HandleUtility.ApplyWireMaterial(); GL.Begin(1); float num = EditorGUIUtility.pixelsPerPoint; float num2 = 1f / num; float num3 = 0.5f * num2; float num4 = Mathf.Ceil(r.width) * num; float num5 = Mathf.Floor(r.x) + AudioCurveRendering.pixelEpsilon; float num6 = 1f / (num4 - 1f); float num7 = r.height * 0.5f; float num8 = r.y + 0.5f * r.height; Color c; float value; float value2; eval(0.0001f, out c, out value, out value2); AudioCurveRendering.Sort2(ref value, ref value2); float b = num8 - num7 * Mathf.Clamp(value2, -1f, 1f); float b2 = num8 - num7 * Mathf.Clamp(value, -1f, 1f); float y = r.y; float max = r.y + r.height; int num9 = 0; while ((float)num9 < num4) { float x = num5 + (float)num9 * num2; eval((float)num9 * num6, out c, out value, out value2); AudioCurveRendering.Sort2(ref value, ref value2); Color c2 = new Color(c.r, c.g, c.b, 0f); float num10 = num8 - num7 * Mathf.Clamp(value2, -1f, 1f); float num11 = num8 - num7 * Mathf.Clamp(value, -1f, 1f); float y2 = Mathf.Clamp(Mathf.Min(num10, b) - num3, y, max); float y3 = Mathf.Clamp(Mathf.Max(num10, b) + num3, y, max); float y4 = Mathf.Clamp(Mathf.Min(num11, b2) - num3, y, max); float y5 = Mathf.Clamp(Mathf.Max(num11, b2) + num3, y, max); AudioCurveRendering.Sort2(ref y2, ref y4); AudioCurveRendering.Sort2(ref y3, ref y5); AudioCurveRendering.Sort2(ref y2, ref y3); AudioCurveRendering.Sort2(ref y4, ref y5); AudioCurveRendering.Sort2(ref y3, ref y4); GL.Color(c2); AudioMixerDrawUtils.Vertex(x, y2); GL.Color(c); AudioMixerDrawUtils.Vertex(x, y3); AudioMixerDrawUtils.Vertex(x, y3); AudioMixerDrawUtils.Vertex(x, y4); AudioMixerDrawUtils.Vertex(x, y4); GL.Color(c2); AudioMixerDrawUtils.Vertex(x, y5); b2 = num11; b = num10; num9++; } GL.End(); }
public static void DrawMinMaxFilledCurve(Rect r, AudioCurveRendering.AudioMinMaxCurveAndColorEvaluator eval) { HandleUtility.ApplyWireMaterial(); GL.Begin(1); float pixelsPerPoint = EditorGUIUtility.pixelsPerPoint; float num1 = 1f / pixelsPerPoint; float num2 = 0.5f * num1; float num3 = Mathf.Ceil(r.width) * pixelsPerPoint; float num4 = Mathf.Floor(r.x) + AudioCurveRendering.pixelEpsilon; float num5 = 1f / (num3 - 1f); float num6 = r.height * 0.5f; float num7 = r.y + 0.5f * r.height; Color col; float minValue1; float maxValue1; eval(0.0001f, out col, out minValue1, out maxValue1); AudioCurveRendering.Sort2(ref minValue1, ref maxValue1); float b1 = num7 - num6 * Mathf.Clamp(maxValue1, -1f, 1f); float b2 = num7 - num6 * Mathf.Clamp(minValue1, -1f, 1f); float y1 = r.y; float max = r.y + r.height; for (int index = 0; (double)index < (double)num3; ++index) { float x = num4 + (float)index * num1; eval((float)index * num5, out col, out minValue1, out maxValue1); AudioCurveRendering.Sort2(ref minValue1, ref maxValue1); Color c = new Color(col.r, col.g, col.b, 0.0f); float a1 = num7 - num6 * Mathf.Clamp(maxValue1, -1f, 1f); float a2 = num7 - num6 * Mathf.Clamp(minValue1, -1f, 1f); float minValue2 = Mathf.Clamp(Mathf.Min(a1, b1) - num2, y1, max); float y2 = Mathf.Clamp(Mathf.Max(a1, b1) + num2, y1, max); float y3 = Mathf.Clamp(Mathf.Min(a2, b2) - num2, y1, max); float maxValue2 = Mathf.Clamp(Mathf.Max(a2, b2) + num2, y1, max); AudioCurveRendering.Sort2(ref minValue2, ref y3); AudioCurveRendering.Sort2(ref y2, ref maxValue2); AudioCurveRendering.Sort2(ref minValue2, ref y2); AudioCurveRendering.Sort2(ref y3, ref maxValue2); AudioCurveRendering.Sort2(ref y2, ref y3); GL.Color(c); AudioMixerDrawUtils.Vertex(x, minValue2); GL.Color(col); AudioMixerDrawUtils.Vertex(x, y2); AudioMixerDrawUtils.Vertex(x, y2); AudioMixerDrawUtils.Vertex(x, y3); AudioMixerDrawUtils.Vertex(x, y3); GL.Color(c); AudioMixerDrawUtils.Vertex(x, maxValue2); b2 = a2; b1 = a1; } GL.End(); }