1 Commits

Author SHA1 Message Date
0% [█ █ █ █ █ █ █ █ █ █] 100% 3aa2a7c518 Added new icon 2026-07-18 23:25:36 -05:00
10 changed files with 23272 additions and 242 deletions
+73 -65
View File
@@ -23,89 +23,97 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
this.lblServers = new System.Windows.Forms.Label(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ClientForm));
this.lstServers = new System.Windows.Forms.ListBox(); lblServers = new Label();
this.btnConnect = new System.Windows.Forms.Button(); lstServers = new ListBox();
this.btnSwitchMode = new System.Windows.Forms.Button(); btnConnect = new Button();
this.chkLogging = new System.Windows.Forms.CheckBox(); btnSwitchMode = new Button();
this.updateTimer = new System.Windows.Forms.Timer(this.components); chkLogging = new CheckBox();
this.SuspendLayout(); updateTimer = new System.Windows.Forms.Timer(components);
SuspendLayout();
// //
// lblServers // lblServers
// //
this.lblServers.AutoSize = true; lblServers.AutoSize = true;
this.lblServers.Location = new System.Drawing.Point(20, 20); lblServers.Location = new Point(40, 46);
this.lblServers.Name = "lblServers"; lblServers.Margin = new Padding(6, 0, 6, 0);
this.lblServers.Size = new System.Drawing.Size(182, 13); lblServers.Name = "lblServers";
this.lblServers.TabIndex = 0; lblServers.Size = new Size(346, 30);
this.lblServers.Text = "Discovered Servers (Auto-updating):"; lblServers.TabIndex = 0;
lblServers.Text = "Discovered Servers (Auto-updating):";
// //
// lstServers // lstServers
// //
this.lstServers.FormattingEnabled = true; lstServers.FormattingEnabled = true;
this.lstServers.Location = new System.Drawing.Point(20, 40); lstServers.Location = new Point(40, 92);
this.lstServers.Name = "lstServers"; lstServers.Margin = new Padding(6, 7, 6, 7);
this.lstServers.Size = new System.Drawing.Size(440, 160); lstServers.Name = "lstServers";
this.lstServers.TabIndex = 1; lstServers.Size = new Size(876, 364);
this.lstServers.DoubleClick += new System.EventHandler(this.lstServers_DoubleClick); lstServers.TabIndex = 1;
this.lstServers.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lstServers_KeyDown); lstServers.DoubleClick += lstServers_DoubleClick;
// lstServers.KeyDown += lstServers_KeyDown;
// chkLogging
//
this.chkLogging.AutoSize = true;
this.chkLogging.Location = new System.Drawing.Point(20, 210);
this.chkLogging.Name = "chkLogging";
this.chkLogging.Size = new System.Drawing.Size(100, 17);
this.chkLogging.TabIndex = 4;
this.chkLogging.Text = "Enable Logging";
this.chkLogging.UseVisualStyleBackColor = true;
this.chkLogging.CheckedChanged += new System.EventHandler(this.chkLogging_CheckedChanged);
// //
// btnConnect // btnConnect
// //
this.btnConnect.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); btnConnect.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Point, 0);
this.btnConnect.Location = new System.Drawing.Point(20, 240); btnConnect.Location = new Point(40, 554);
this.btnConnect.Name = "btnConnect"; btnConnect.Margin = new Padding(6, 7, 6, 7);
this.btnConnect.Size = new System.Drawing.Size(210, 40); btnConnect.Name = "btnConnect";
this.btnConnect.TabIndex = 2; btnConnect.Size = new Size(420, 92);
this.btnConnect.Text = "Connect"; btnConnect.TabIndex = 2;
this.btnConnect.UseVisualStyleBackColor = true; btnConnect.Text = "Connect";
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click); btnConnect.UseVisualStyleBackColor = true;
btnConnect.Click += btnConnect_Click;
// //
// btnSwitchMode // btnSwitchMode
// //
this.btnSwitchMode.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); btnSwitchMode.Font = new Font("Arial", 10F, FontStyle.Regular, GraphicsUnit.Point, 0);
this.btnSwitchMode.Location = new System.Drawing.Point(250, 240); btnSwitchMode.Location = new Point(500, 554);
this.btnSwitchMode.Name = "btnSwitchMode"; btnSwitchMode.Margin = new Padding(6, 7, 6, 7);
this.btnSwitchMode.Size = new System.Drawing.Size(210, 40); btnSwitchMode.Name = "btnSwitchMode";
this.btnSwitchMode.TabIndex = 3; btnSwitchMode.Size = new Size(420, 92);
this.btnSwitchMode.Text = "Switch to Server Mode"; btnSwitchMode.TabIndex = 3;
this.btnSwitchMode.UseVisualStyleBackColor = true; btnSwitchMode.Text = "Switch to Server Mode";
this.btnSwitchMode.Click += new System.EventHandler(this.btnSwitchMode_Click); btnSwitchMode.UseVisualStyleBackColor = true;
btnSwitchMode.Click += btnSwitchMode_Click;
//
// chkLogging
//
chkLogging.AutoSize = true;
chkLogging.Location = new Point(40, 485);
chkLogging.Margin = new Padding(6, 7, 6, 7);
chkLogging.Name = "chkLogging";
chkLogging.Size = new Size(182, 34);
chkLogging.TabIndex = 4;
chkLogging.Text = "Enable Logging";
chkLogging.UseVisualStyleBackColor = true;
chkLogging.CheckedChanged += chkLogging_CheckedChanged;
// //
// updateTimer // updateTimer
// //
this.updateTimer.Interval = 1000; updateTimer.Interval = 1000;
this.updateTimer.Tick += new System.EventHandler(this.updateTimer_Tick); updateTimer.Tick += updateTimer_Tick;
// //
// ClientForm // ClientForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); AutoScaleDimensions = new SizeF(12F, 30F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 311); ClientSize = new Size(968, 718);
this.Controls.Add(this.chkLogging); Controls.Add(chkLogging);
this.Controls.Add(this.btnSwitchMode); Controls.Add(btnSwitchMode);
this.Controls.Add(this.btnConnect); Controls.Add(btnConnect);
this.Controls.Add(this.lstServers); Controls.Add(lstServers);
this.Controls.Add(this.lblServers); Controls.Add(lblServers);
this.Name = "ClientForm"; Icon = (Icon)resources.GetObject("$this.Icon");
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; Margin = new Padding(6, 7, 6, 7);
this.Text = "Stream Client (Viewer)"; Name = "ClientForm";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ClientForm_FormClosing); StartPosition = FormStartPosition.CenterScreen;
this.Load += new System.EventHandler(this.ClientForm_Load); Text = "Stream Client (Viewer)";
this.ResumeLayout(false); FormClosing += ClientForm_FormClosing;
this.PerformLayout(); Load += ClientForm_Load;
ResumeLayout(false);
PerformLayout();
} }
File diff suppressed because it is too large Load Diff
+5
View File
@@ -8,8 +8,13 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<ApplicationIcon>displayStreamerIcon-NoBackground.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Content Include="displayStreamerIcon-NoBackground.ico" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="SharpDX" Version="4.2.0" /> <PackageReference Include="SharpDX" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" /> <PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" />
+134 -123
View File
@@ -30,162 +30,173 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
this.lblAdapters = new System.Windows.Forms.Label(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerForm));
this.clbAdapters = new System.Windows.Forms.CheckedListBox(); lblAdapters = new Label();
this.lblDisplays = new System.Windows.Forms.Label(); clbAdapters = new CheckedListBox();
this.clbDisplays = new System.Windows.Forms.CheckedListBox(); lblDisplays = new Label();
this.btnStart = new System.Windows.Forms.Button(); clbDisplays = new CheckedListBox();
this.btnSwitchMode = new System.Windows.Forms.Button(); btnStart = new Button();
this.lblStatus = new System.Windows.Forms.Label(); btnSwitchMode = new Button();
this.chkLogging = new System.Windows.Forms.CheckBox(); lblStatus = new Label();
this.txtLog = new System.Windows.Forms.TextBox(); chkLogging = new CheckBox();
this.trayIcon = new System.Windows.Forms.NotifyIcon(this.components); txtLog = new TextBox();
this.trayMenu = new System.Windows.Forms.ContextMenuStrip(this.components); trayIcon = new NotifyIcon(components);
this.menuShow = new System.Windows.Forms.ToolStripMenuItem(); trayMenu = new ContextMenuStrip(components);
this.menuExit = new System.Windows.Forms.ToolStripMenuItem(); menuShow = new ToolStripMenuItem();
this.trayMenu.SuspendLayout(); menuExit = new ToolStripMenuItem();
this.SuspendLayout(); trayMenu.SuspendLayout();
SuspendLayout();
// //
// lblAdapters // lblAdapters
// //
this.lblAdapters.AutoSize = true; lblAdapters.AutoSize = true;
this.lblAdapters.Location = new System.Drawing.Point(20, 20); lblAdapters.Location = new Point(40, 46);
this.lblAdapters.Name = "lblAdapters"; lblAdapters.Margin = new Padding(6, 0, 6, 0);
this.lblAdapters.Size = new System.Drawing.Size(205, 13); lblAdapters.Name = "lblAdapters";
this.lblAdapters.TabIndex = 0; lblAdapters.Size = new Size(398, 30);
this.lblAdapters.Text = "Select Network Adapters to Broadcast on:"; lblAdapters.TabIndex = 0;
lblAdapters.Text = "Select Network Adapters to Broadcast on:";
// //
// clbAdapters // clbAdapters
// //
this.clbAdapters.FormattingEnabled = true; clbAdapters.FormattingEnabled = true;
this.clbAdapters.Location = new System.Drawing.Point(20, 40); clbAdapters.Location = new Point(40, 92);
this.clbAdapters.Name = "clbAdapters"; clbAdapters.Margin = new Padding(6, 7, 6, 7);
this.clbAdapters.Size = new System.Drawing.Size(440, 94); clbAdapters.Name = "clbAdapters";
this.clbAdapters.TabIndex = 1; clbAdapters.Size = new Size(876, 196);
clbAdapters.TabIndex = 1;
// //
// lblDisplays // lblDisplays
// //
this.lblDisplays.AutoSize = true; lblDisplays.AutoSize = true;
this.lblDisplays.Location = new System.Drawing.Point(20, 150); lblDisplays.Location = new Point(40, 346);
this.lblDisplays.Name = "lblDisplays"; lblDisplays.Margin = new Padding(6, 0, 6, 0);
this.lblDisplays.Size = new System.Drawing.Size(278, 13); lblDisplays.Name = "lblDisplays";
this.lblDisplays.TabIndex = 2; lblDisplays.Size = new Size(531, 30);
this.lblDisplays.Text = "Select Displays to Capture (Will downscale 4K to 1080p):"; lblDisplays.TabIndex = 2;
lblDisplays.Text = "Select Displays to Capture (Will downscale 4K to 1080p):";
// //
// clbDisplays // clbDisplays
// //
this.clbDisplays.FormattingEnabled = true; clbDisplays.FormattingEnabled = true;
this.clbDisplays.Location = new System.Drawing.Point(20, 170); clbDisplays.Location = new Point(40, 392);
this.clbDisplays.Name = "clbDisplays"; clbDisplays.Margin = new Padding(6, 7, 6, 7);
this.clbDisplays.Size = new System.Drawing.Size(440, 94); clbDisplays.Name = "clbDisplays";
this.clbDisplays.TabIndex = 3; clbDisplays.Size = new Size(876, 196);
clbDisplays.TabIndex = 3;
// //
// btnStart // btnStart
// //
this.btnStart.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); btnStart.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Point, 0);
this.btnStart.Location = new System.Drawing.Point(20, 290); btnStart.Location = new Point(40, 669);
this.btnStart.Name = "btnStart"; btnStart.Margin = new Padding(6, 7, 6, 7);
this.btnStart.Size = new System.Drawing.Size(210, 40); btnStart.Name = "btnStart";
this.btnStart.TabIndex = 4; btnStart.Size = new Size(420, 92);
this.btnStart.Text = "Start Streaming"; btnStart.TabIndex = 4;
this.btnStart.UseVisualStyleBackColor = true; btnStart.Text = "Start Streaming";
this.btnStart.Click += new System.EventHandler(this.btnStart_Click); btnStart.UseVisualStyleBackColor = true;
btnStart.Click += btnStart_Click;
// //
// btnSwitchMode // btnSwitchMode
// //
this.btnSwitchMode.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); btnSwitchMode.Font = new Font("Arial", 10F, FontStyle.Regular, GraphicsUnit.Point, 0);
this.btnSwitchMode.Location = new System.Drawing.Point(250, 290); btnSwitchMode.Location = new Point(500, 669);
this.btnSwitchMode.Name = "btnSwitchMode"; btnSwitchMode.Margin = new Padding(6, 7, 6, 7);
this.btnSwitchMode.Size = new System.Drawing.Size(210, 40); btnSwitchMode.Name = "btnSwitchMode";
this.btnSwitchMode.TabIndex = 7; btnSwitchMode.Size = new Size(420, 92);
this.btnSwitchMode.Text = "Switch to Client Mode"; btnSwitchMode.TabIndex = 7;
this.btnSwitchMode.UseVisualStyleBackColor = true; btnSwitchMode.Text = "Switch to Client Mode";
this.btnSwitchMode.Click += new System.EventHandler(this.btnSwitchMode_Click); btnSwitchMode.UseVisualStyleBackColor = true;
btnSwitchMode.Click += btnSwitchMode_Click;
// //
// lblStatus // lblStatus
// //
this.lblStatus.AutoSize = true; lblStatus.AutoSize = true;
this.lblStatus.ForeColor = System.Drawing.Color.Gray; lblStatus.ForeColor = Color.Gray;
this.lblStatus.Location = new System.Drawing.Point(20, 340); lblStatus.Location = new Point(40, 785);
this.lblStatus.Name = "lblStatus"; lblStatus.Margin = new Padding(6, 0, 6, 0);
this.lblStatus.Size = new System.Drawing.Size(63, 13); lblStatus.Name = "lblStatus";
this.lblStatus.TabIndex = 5; lblStatus.Size = new Size(114, 30);
this.lblStatus.Text = "Status: Idle"; lblStatus.TabIndex = 5;
lblStatus.Text = "Status: Idle";
// //
// chkLogging // chkLogging
// //
this.chkLogging.AutoSize = true; chkLogging.AutoSize = true;
this.chkLogging.Location = new System.Drawing.Point(350, 340); chkLogging.Location = new Point(700, 785);
this.chkLogging.Name = "chkLogging"; chkLogging.Margin = new Padding(6, 7, 6, 7);
this.chkLogging.Size = new System.Drawing.Size(100, 17); chkLogging.Name = "chkLogging";
this.chkLogging.TabIndex = 8; chkLogging.Size = new Size(182, 34);
this.chkLogging.Text = "Enable Logging"; chkLogging.TabIndex = 8;
this.chkLogging.UseVisualStyleBackColor = true; chkLogging.Text = "Enable Logging";
this.chkLogging.CheckedChanged += new System.EventHandler(this.chkLogging_CheckedChanged); chkLogging.UseVisualStyleBackColor = true;
chkLogging.CheckedChanged += chkLogging_CheckedChanged;
// //
// txtLog // txtLog
// //
this.txtLog.Location = new System.Drawing.Point(20, 370); txtLog.Location = new Point(40, 854);
this.txtLog.Multiline = true; txtLog.Margin = new Padding(6, 7, 6, 7);
this.txtLog.Name = "txtLog"; txtLog.Multiline = true;
this.txtLog.ReadOnly = true; txtLog.Name = "txtLog";
this.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; txtLog.ReadOnly = true;
this.txtLog.Size = new System.Drawing.Size(440, 210); txtLog.ScrollBars = ScrollBars.Vertical;
this.txtLog.TabIndex = 6; txtLog.Size = new Size(876, 479);
// txtLog.TabIndex = 6;
// trayMenu
//
this.trayMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuShow,
this.menuExit});
this.trayMenu.Name = "trayMenu";
this.trayMenu.Size = new System.Drawing.Size(104, 48);
//
// menuShow
//
this.menuShow.Name = "menuShow";
this.menuShow.Size = new System.Drawing.Size(103, 22);
this.menuShow.Text = "Show";
this.menuShow.Click += new System.EventHandler(this.menuShow_Click);
//
// menuExit
//
this.menuExit.Name = "menuExit";
this.menuExit.Size = new System.Drawing.Size(103, 22);
this.menuExit.Text = "Exit";
this.menuExit.Click += new System.EventHandler(this.menuExit_Click);
// //
// trayIcon // trayIcon
// //
this.trayIcon.ContextMenuStrip = this.trayMenu; trayIcon.ContextMenuStrip = trayMenu;
this.trayIcon.Icon = System.Drawing.SystemIcons.Application; trayIcon.Icon = (Icon)resources.GetObject("trayIcon.Icon");
this.trayIcon.Text = "Display Streamer Server"; trayIcon.Text = "Display Streamer Server";
this.trayIcon.DoubleClick += new System.EventHandler(this.trayIcon_DoubleClick); trayIcon.DoubleClick += trayIcon_DoubleClick;
//
// trayMenu
//
trayMenu.ImageScalingSize = new Size(28, 28);
trayMenu.Items.AddRange(new ToolStripItem[] { menuShow, menuExit });
trayMenu.Name = "trayMenu";
trayMenu.Size = new Size(137, 76);
//
// menuShow
//
menuShow.Name = "menuShow";
menuShow.Size = new Size(136, 36);
menuShow.Text = "Show";
menuShow.Click += menuShow_Click;
//
// menuExit
//
menuExit.Name = "menuExit";
menuExit.Size = new Size(136, 36);
menuExit.Text = "Exit";
menuExit.Click += menuExit_Click;
// //
// ServerForm // ServerForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); AutoScaleDimensions = new SizeF(12F, 30F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 600); ClientSize = new Size(968, 1385);
this.Controls.Add(this.chkLogging); Controls.Add(chkLogging);
this.Controls.Add(this.btnSwitchMode); Controls.Add(btnSwitchMode);
this.Controls.Add(this.txtLog); Controls.Add(txtLog);
this.Controls.Add(this.lblStatus); Controls.Add(lblStatus);
this.Controls.Add(this.btnStart); Controls.Add(btnStart);
this.Controls.Add(this.clbDisplays); Controls.Add(clbDisplays);
this.Controls.Add(this.lblDisplays); Controls.Add(lblDisplays);
this.Controls.Add(this.clbAdapters); Controls.Add(clbAdapters);
this.Controls.Add(this.lblAdapters); Controls.Add(lblAdapters);
this.Name = "ServerForm"; Icon = (Icon)resources.GetObject("$this.Icon");
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; Margin = new Padding(6, 7, 6, 7);
this.Text = "Stream Server (DX12 / H.265)"; Name = "ServerForm";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerForm_FormClosing); StartPosition = FormStartPosition.CenterScreen;
this.Load += new System.EventHandler(this.ServerForm_Load); Text = "Stream Server (DX12 / H.265)";
this.Resize += new System.EventHandler(this.ServerForm_Resize); FormClosing += ServerForm_FormClosing;
this.trayMenu.ResumeLayout(false); Load += ServerForm_Load;
this.ResumeLayout(false); Resize += ServerForm_Resize;
this.PerformLayout(); trayMenu.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
} }
File diff suppressed because it is too large Load Diff
+2
View File
@@ -21,6 +21,7 @@
private void InitializeComponent() private void InitializeComponent()
{ {
components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ViewerForm));
lblEsc = new Label(); lblEsc = new Label();
lblMetrics = new Label(); lblMetrics = new Label();
hideLabelTimer = new System.Windows.Forms.Timer(components); hideLabelTimer = new System.Windows.Forms.Timer(components);
@@ -66,6 +67,7 @@
Controls.Add(lblMetrics); Controls.Add(lblMetrics);
Controls.Add(lblEsc); Controls.Add(lblEsc);
FormBorderStyle = FormBorderStyle.None; FormBorderStyle = FormBorderStyle.None;
Icon = (Icon)resources.GetObject("$this.Icon");
KeyPreview = true; KeyPreview = true;
Margin = new Padding(6, 7, 6, 7); Margin = new Padding(6, 7, 6, 7);
Name = "ViewerForm"; Name = "ViewerForm";
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

+52
View File
@@ -0,0 +1,52 @@
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- Vibrant Blue to Cyan Gradient for the background -->
<linearGradient id="bgGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#00C6FF" />
<stop offset="100%" stop-color="#0072FF" />
</linearGradient>
<!-- Subtle drop shadow to give the window depth -->
<filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="12" stdDeviation="12" flood-color="#000000" flood-opacity="0.25" />
</filter>
</defs>
<!-- Background Squircle -->
<rect width="512" height="512" rx="112" fill="url(#bgGradient)" />
<!-- Group containing the Window and Cast Waves -->
<g filter="url(#shadow)">
<!--
Outer Shell:
Draws the top, right, and bottom of the window,
then arcs into the largest casting wave in the bottom-left.
-->
<path d="M 64 256
L 64 112
A 48 48 0 0 1 112 64
L 400 64
A 48 48 0 0 1 448 112
L 448 400
A 48 48 0 0 1 400 448
L 256 448
A 192 192 0 0 0 64 256 Z"
fill="none" stroke="#FFFFFF" stroke-width="32" stroke-linecap="round" stroke-linejoin="round" />
<!-- Window Top Bar Separator -->
<path d="M 80 160 L 432 160" stroke="#FFFFFF" stroke-width="32" stroke-linecap="round" />
<!-- Window Control Dots -->
<circle cx="120" cy="112" r="12" fill="#FFFFFF" />
<circle cx="168" cy="112" r="12" fill="#FFFFFF" />
<circle cx="216" cy="112" r="12" fill="#FFFFFF" />
<!-- Inner Casting Wave -->
<path d="M 64 352 A 96 96 0 0 1 160 448" fill="none" stroke="#FFFFFF" stroke-width="32" stroke-linecap="round" />
<!-- Casting Origin Anchor Dot -->
<circle cx="64" cy="448" r="16" fill="#FFFFFF" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB