Browse Source

working on qlaunch now!

pull/2953/head
unknown 4 months ago
parent
commit
8259a0aeb2
  1. 3
      src/core/hle/service/am/applet_manager.cpp
  2. 9
      src/core/hle/service/am/display_layer_manager.cpp

3
src/core/hle/service/am/applet_manager.cpp

@ -271,7 +271,8 @@ void AppletManager::SetWindowSystem(WindowSystem* window_system) {
overlay_applet->type = AppletType::OverlayApplet; overlay_applet->type = AppletType::OverlayApplet;
// Use PartialForeground so blending is enabled and overlay can be composed on top // Use PartialForeground so blending is enabled and overlay can be composed on top
overlay_applet->library_applet_mode = LibraryAppletMode::PartialForeground; overlay_applet->library_applet_mode = LibraryAppletMode::PartialForeground;
m_window_system->TrackApplet(overlay_applet, true);
// Track as a non-application so WindowSystem routes it to m_overlay_display
m_window_system->TrackApplet(overlay_applet, false);
overlay_applet->process->Run(); overlay_applet->process->Run();
LOG_INFO(Service_AM, "Overlay applet launched before application"); LOG_INFO(Service_AM, "Overlay applet launched before application");
} }

9
src/core/hle/service/am/display_layer_manager.cpp

@ -73,7 +73,16 @@ Result DisplayLayerManager::CreateManagedDisplayLayer(u64* out_layer_id) {
R_TRY(m_manager_display_service->CreateManagedLayer( R_TRY(m_manager_display_service->CreateManagedLayer(
out_layer_id, 0, display_id, Service::AppletResourceUserId{m_process->GetProcessId()})); out_layer_id, 0, display_id, Service::AppletResourceUserId{m_process->GetProcessId()}));
// Ensure visibility follows our state
m_manager_display_service->SetLayerVisibility(m_visible, *out_layer_id); m_manager_display_service->SetLayerVisibility(m_visible, *out_layer_id);
// For non-application applets (e.g., overlay), make sure UI layers blend and render on top
if (m_applet_id != AppletId::Application) {
static constexpr s32 kOverlayZ = 100000;
(void)m_manager_display_service->SetLayerBlending(m_blending_enabled, *out_layer_id);
(void)m_manager_display_service->SetLayerZIndex(kOverlayZ, *out_layer_id);
}
m_managed_display_layers.emplace(*out_layer_id); m_managed_display_layers.emplace(*out_layer_id);
R_SUCCEED(); R_SUCCEED();

Loading…
Cancel
Save