public static void DrawFilledCurve(Rect r, AudioCurveRendering.AudioCurveAndColorEvaluator eval) { if (Event.current.type != EventType.Repaint) { return; } HandleUtility.ApplyWireMaterial(); GL.Begin(1); float num = 1f / (r.width - 1f); float num2 = r.height * 0.5f; Color c; float num3 = r.y + Mathf.Clamp(num2 - num2 * eval(0.0001f, out c), 0f, r.height); int num4 = 0; while ((float)num4 < r.width) { float num5 = (float)((int)r.x + num4); float num6 = r.y + Mathf.Clamp(num2 - num2 * eval((float)num4 * num, out c), 0f, r.height); GL.Color(c); AudioMixerDrawUtils.Vertex(num5, (float)((int)Mathf.Ceil(num6))); AudioMixerDrawUtils.Vertex(num5, r.y + r.height); if (Mathf.Abs(num3 - num6) <= 1f) { GL.Color(new Color(c.r, c.g, c.b, c.a * (Mathf.Ceil(num6) - num6))); AudioMixerDrawUtils.Vertex(num5, Mathf.Ceil(num6) - 1f); AudioMixerDrawUtils.Vertex(num5, Mathf.Ceil(num6)); } else { if (num3 < num6) { GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num5, Mathf.Ceil(num3)); GL.Color(c); AudioMixerDrawUtils.Vertex(num5, Mathf.Ceil(num6)); } else { GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num5 - 1f, Mathf.Ceil(num6)); GL.Color(c); AudioMixerDrawUtils.Vertex(num5 - 1f, Mathf.Ceil(num3)); } } num3 = num6; num4++; } GL.End(); }
public static void DrawSymmetricFilledCurve(Rect r, AudioCurveRendering.AudioCurveAndColorEvaluator eval) { if (Event.current.type != EventType.Repaint) { return; } 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 b = Mathf.Clamp(num7 * eval(0.0001f, out c), 0f, num7); int num9 = 0; while ((float)num9 < num4) { float x = num5 + (float)num9 * num2; float num10 = Mathf.Clamp(num7 * eval((float)num9 * num6, out c), 0f, num7); float num11 = Mathf.Max(Mathf.Min(num10, b) - num3, 0f); float num12 = Mathf.Min(Mathf.Max(num10, b) + num3, num7); Color c2 = new Color(c.r, c.g, c.b, 0f); GL.Color(c2); AudioMixerDrawUtils.Vertex(x, num8 - num12); GL.Color(c); AudioMixerDrawUtils.Vertex(x, num8 - num11); AudioMixerDrawUtils.Vertex(x, num8 - num11); AudioMixerDrawUtils.Vertex(x, num8 + num11); AudioMixerDrawUtils.Vertex(x, num8 + num11); GL.Color(c2); AudioMixerDrawUtils.Vertex(x, num8 + num12); b = num10; num9++; } GL.End(); }
static void DoRenderPreview(AudioClip clip, Rect rect) { var samples = new float[clip.samples]; clip.GetData(samples, 0); AudioCurveRendering.AudioCurveAndColorEvaluator dlg = delegate(float x, out Color color) { color = curveColor; if (clip.samples <= 0) { return(0); } var p = Mathf.FloorToInt(Mathf.Clamp(x * (clip.samples - 1), 0.0f, clip.samples - 1)); return(samples[p]); }; rect = AudioCurveRendering.BeginCurveFrame(rect); AudioCurveRendering.DrawSymmetricFilledCurve(rect, dlg); AudioCurveRendering.EndCurveFrame(); }
public static void DrawSymmetricFilledCurve(Rect r, AudioCurveRendering.AudioCurveAndColorEvaluator eval) { if (Event.current.type != EventType.Repaint) { return; } 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 b = Mathf.Clamp(num6 * eval(0.0001f, out col), 0.0f, num6); for (int index = 0; (double)index < (double)num3; ++index) { float x = num4 + (float)index * num1; float a = Mathf.Clamp(num6 * eval((float)index * num5, out col), 0.0f, num6); float num8 = Mathf.Max(Mathf.Min(a, b) - num2, 0.0f); float num9 = Mathf.Min(Mathf.Max(a, b) + num2, num6); Color c = new Color(col.r, col.g, col.b, 0.0f); GL.Color(c); AudioMixerDrawUtils.Vertex(x, num7 - num9); GL.Color(col); AudioMixerDrawUtils.Vertex(x, num7 - num8); AudioMixerDrawUtils.Vertex(x, num7 - num8); AudioMixerDrawUtils.Vertex(x, num7 + num8); AudioMixerDrawUtils.Vertex(x, num7 + num8); GL.Color(c); AudioMixerDrawUtils.Vertex(x, num7 + num9); b = a; } GL.End(); }
public static void DrawSymmetricFilledCurve(Rect r, AudioCurveRendering.AudioCurveAndColorEvaluator eval) { if (Event.current.type != EventType.Repaint) { return; } HandleUtility.ApplyWireMaterial(); GL.Begin(1); float num = EditorGUIUtility.pixelsPerPoint; float num2 = 1f / num; float num3 = r.width * num; float num4 = 1f / (num3 - 1f); float num5 = r.height * 0.5f; float num6 = r.y + 0.5f * r.height; Color c; float num7 = Mathf.Clamp(num5 * eval(0.0001f, out c), 0f, num5); int num8 = 0; while ((float)num8 < num3) { float x = Mathf.Floor(r.x) + (float)num8 * num2; float num9 = Mathf.Clamp(num5 * eval((float)num8 * num4, out c), 0f, num5); float num10 = (num9 >= num7) ? num7 : num9; float num11 = (num9 <= num7) ? num7 : num9; GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(x, num6 + num11); GL.Color(c); AudioMixerDrawUtils.Vertex(x, num6 + num10); AudioMixerDrawUtils.Vertex(x, num6 + num10); AudioMixerDrawUtils.Vertex(x, num6 - num10); AudioMixerDrawUtils.Vertex(x, num6 - num10); GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(x, num6 - num11); num7 = num9; num8++; } GL.End(); }
public static void DrawSymmetricFilledCurve(Rect r, AudioCurveRendering.AudioCurveAndColorEvaluator eval) { if (Event.current.type != EventType.Repaint) { return; } HandleUtility.ApplyWireMaterial(); GL.Begin(1); float num = 1f / (r.width - 1f); float num2 = r.height * 0.5f; float y = r.y; float num3 = r.y + r.height; Color c; float num4 = Mathf.Clamp(num2 - num2 * eval(0.0001f, out c), 0f, num2); int num5 = 0; while ((float)num5 < r.width) { float num6 = (float)((int)r.x + num5); float num7 = Mathf.Clamp(num2 - num2 * eval((float)num5 * num, out c), 0f, num2); GL.Color(c); AudioMixerDrawUtils.Vertex(num6, y + (float)((int)Mathf.Ceil(num7))); AudioMixerDrawUtils.Vertex(num6, num3 - (float)((int)Mathf.Ceil(num7))); if (Mathf.Abs(num4 - num7) <= 1f) { GL.Color(new Color(c.r, c.g, c.b, c.a * (Mathf.Ceil(num7) - num7))); AudioMixerDrawUtils.Vertex(num6, y + Mathf.Ceil(num7) - 1f); AudioMixerDrawUtils.Vertex(num6, y + Mathf.Ceil(num7)); AudioMixerDrawUtils.Vertex(num6, num3 - Mathf.Ceil(num7) + 1f); AudioMixerDrawUtils.Vertex(num6, num3 - Mathf.Ceil(num7)); } else { if (num4 < num7) { GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num6, y + Mathf.Ceil(num4)); GL.Color(c); AudioMixerDrawUtils.Vertex(num6, y + Mathf.Ceil(num7)); GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num6, num3 - Mathf.Ceil(num4) - 1f); GL.Color(c); AudioMixerDrawUtils.Vertex(num6, num3 - Mathf.Ceil(num7) - 1f); } else { GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num6 - 1f, y + Mathf.Ceil(num7)); GL.Color(c); AudioMixerDrawUtils.Vertex(num6 - 1f, y + Mathf.Ceil(num4)); GL.Color(new Color(c.r, c.g, c.b, 0f)); AudioMixerDrawUtils.Vertex(num6 - 1f, num3 - Mathf.Ceil(num7) - 1f); GL.Color(c); AudioMixerDrawUtils.Vertex(num6 - 1f, num3 - Mathf.Ceil(num4) - 1f); } } num4 = num7; num5++; } GL.End(); }