This commit is contained in:
jess 2026-04-23 06:55:44 -07:00
parent 95894168f3
commit ed82d65c3e
3 changed files with 2 additions and 28 deletions

View File

@ -14,9 +14,7 @@
<LangVersion>latest</LangVersion>
<PublishReadyToRun>true</PublishReadyToRun>
<AssemblyName>Layers</AssemblyName>
<!-- Baked by the GenerateAppIcon target below before every build. If neither rsvg-convert
nor magick are on PATH, the file never gets produced and this reference stays elided
via the Condition — .NET just uses its default exe icon, build still succeeds. -->
<EnableMrtResourceIndexer>false</EnableMrtResourceIndexer>
<ApplicationIcon Condition="Exists('Assets\app.ico')">Assets\app.ico</ApplicationIcon>
<LayersIconSvg>$(MSBuildProjectDirectory)\..\..\..\resources\Layers.svg</LayersIconSvg>
@ -25,15 +23,9 @@
</PropertyGroup>
<ItemGroup>
<!-- If NuGet complains "package not found", bump this to the newest 1.5.* or 1.6.* listed
on https://www.nuget.org/packages/Microsoft.WindowsAppSDK. -->
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.240607001" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.6.241114002" />
</ItemGroup>
<!-- Acord's pattern: let the build system generate the icon so there's no ordering concern
between build.bat and dotnet publish, and no separate icon-shuffling step. Runs before
the compiler needs to open app.ico. Every Exec has ContinueOnError=true so a missing
tool degrades to "no icon" instead of a build failure. -->
<Target Name="GenerateAppIcon"
BeforeTargets="BeforeBuild"
Condition="Exists('$(LayersIconSvg)') and !Exists('$(LayersIconOut)')">

View File

@ -1,7 +1,3 @@
// Suppress the console window on Windows release builds. The plugin launches from a GUI
// context (KiCad pcbnew's toolbar button), not a terminal — the black cmd window that
// `subsystem = "console"` would spawn is noise. Debug builds keep the console so stderr
// streams when launched from a terminal for diagnostics.
#![cfg_attr(all(target_os = "windows", not(debug_assertions)), windows_subsystem = "windows")]
use std::num::NonZeroU32;
@ -209,10 +205,6 @@ impl ShellApp {
} else {
colors.window.alpha_idle
};
// winit 0.30 does not expose a per-platform runtime alpha setter for top-level windows;
// `with_transparent(true)` lets the compositor clear-colour carry alpha on Windows/Linux
// WMs that support it. The compositor clear is opaque-by-design, so fade happens through
// wgpu alpha mode when a translucent background is configured. Stubbed for now.
let _ = alpha;
let _ = NonZeroU32::new(1);
}

View File

@ -39,9 +39,6 @@ pub struct ViewportHandle {
}
impl ViewportHandle {
/// Construct a viewport around already-realised raw window/display handles.
/// Used by native shells (winit on Windows/Linux); the macOS FFI path wraps this
/// through `layers_create` with AppKit handles built from an NSView pointer.
pub fn new_from_raw(
raw_window: RawWindowHandle,
raw_display: RawDisplayHandle,
@ -123,8 +120,6 @@ pub extern "C" fn layers_startup() -> i32 {
if init_logging().is_err() {
return 2;
}
// Preload colours from the compiled-in default so everything works if Swift never calls
// `layers_set_plugin_root`. A subsequent call to that FFI will not replace the cache.
crate::ui::colors::init(None);
match single_instance::acquire_or_signal_existing() {
Ok(single_instance::AcquireOutcome::Primary(guard)) => {
@ -139,8 +134,6 @@ pub extern "C" fn layers_startup() -> i32 {
}
}
/// Point Rust at the installed plugin root so it can load resources/colors.toml.
/// Must be called BEFORE `layers_startup` to take effect; subsequent calls are ignored.
#[unsafe(no_mangle)]
pub extern "C" fn layers_set_plugin_root(path_utf8: *const std::os::raw::c_char) {
if path_utf8.is_null() { return; }
@ -167,9 +160,6 @@ pub extern "C" fn layers_create(
Box::into_raw(Box::new(handle))
}
/// Windows — create a viewport whose surface renders into a WinUI 3 SwapChainPanel.
/// `swap_chain_panel` is the native IInspectable / COM pointer of the XAML element,
/// obtained on the C# side via `SwapChainPanelNative.GetSwapChain` friends.
#[cfg(target_os = "windows")]
#[unsafe(no_mangle)]
pub extern "C" fn layers_create_from_swap_chain_panel(