public static void drawWindow(NvgContext vg, string title, float x, float y, float w, float h) { float cornerRadius = 3.0f; Paint shadowPaint; Paint headerPaint; vg.Save(); // ClearState(vg); // Window vg.BeginPath(); vg.RoundedRect(x, y, w, h, cornerRadius); vg.FillColor(new Color(28, 30, 34, 192)); // vg.FillColor(new Color(0,0,0,128)); vg.Fill(); // Drop shadow shadowPaint = vg.BoxGradient(x, y + 2, w, h, cornerRadius * 2, 10, new Color(0, 0, 0, 128), new Color(0, 0, 0, 0)); vg.BeginPath(); vg.Rect(x - 10, y - 10, w + 20, h + 30); vg.RoundedRect(x, y, w, h, cornerRadius); vg.PathWinding(Solidity.Hole); vg.FillPaint(shadowPaint); vg.Fill(); // Header headerPaint = vg.LinearGradient(x, y, x, y + 15, new Color(255, 255, 255, 8), new Color(0, 0, 0, 16)); vg.BeginPath(); vg.RoundedRect(x + 1, y + 1, w - 2, 30, cornerRadius - 1); vg.FillPaint(headerPaint); vg.Fill(); vg.BeginPath(); vg.MoveTo(x + 0.5f, y + 0.5f + 30); vg.LineTo(x + 0.5f + w - 1, y + 0.5f + 30); vg.StrokeColor(new Color(0, 0, 0, 32)); vg.Stroke(); vg.FontSize(18.0f); vg.FontFace("sans-bold"); vg.TextAlign(Alignment.Center | Alignment.Middle); vg.FontBlur(2); vg.FillColor(new Color(0, 0, 0, 128)); vg.Text(x + w / 2, y + 16 + 1, title); vg.FontBlur(0); vg.FillColor(new Color(220, 220, 220, 160)); vg.Text(x + w / 2, y + 16, title); vg.Restore(); }