mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-22 05:45:38 +00:00
FullscreenUI: Move resources and add lightweight Android version
This commit is contained in:
parent
a35e1b7a25
commit
7be1ad0289
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
@ -358,7 +358,7 @@ void Host::DisplayLoadingScreen(const char* message, int progress_min /*= -1*/,
|
||||||
ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoFocusOnAppearing |
|
ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoFocusOnAppearing |
|
||||||
ImGuiWindowFlags_NoBackground))
|
ImGuiWindowFlags_NoBackground))
|
||||||
{
|
{
|
||||||
HostDisplayTexture* tex = ImGuiFullscreen::GetCachedTexture("fullscreenui/duck.png");
|
HostDisplayTexture* tex = ImGuiFullscreen::GetCachedTexture("images/duck.png");
|
||||||
if (tex)
|
if (tex)
|
||||||
ImGui::Image(tex->GetHandle(), ImVec2(logo_width, logo_height));
|
ImGui::Image(tex->GetHandle(), ImVec2(logo_width, logo_height));
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,6 +116,7 @@ using ImGuiFullscreen::ThreeWayToggleButton;
|
||||||
using ImGuiFullscreen::ToggleButton;
|
using ImGuiFullscreen::ToggleButton;
|
||||||
using ImGuiFullscreen::WantsToCloseMenu;
|
using ImGuiFullscreen::WantsToCloseMenu;
|
||||||
|
|
||||||
|
#ifndef __ANDROID__
|
||||||
namespace FullscreenUI {
|
namespace FullscreenUI {
|
||||||
enum class MainWindowType
|
enum class MainWindowType
|
||||||
{
|
{
|
||||||
|
@ -159,11 +160,6 @@ enum class SettingsPage
|
||||||
Count
|
Count
|
||||||
};
|
};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
// Utility
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
static std::string TimeToPrintableString(time_t t);
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Main
|
// Main
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -388,24 +384,6 @@ static std::optional<u32> s_open_leaderboard_id;
|
||||||
#endif
|
#endif
|
||||||
} // namespace FullscreenUI
|
} // namespace FullscreenUI
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
// Utility
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
std::string FullscreenUI::TimeToPrintableString(time_t t)
|
|
||||||
{
|
|
||||||
struct tm lt = {};
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
localtime_s(<, &t);
|
|
||||||
#else
|
|
||||||
localtime_r(&t, <);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char buf[256];
|
|
||||||
std::strftime(buf, sizeof(buf), "%c", <);
|
|
||||||
return std::string(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Main
|
// Main
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -421,7 +399,7 @@ bool FullscreenUI::Initialize()
|
||||||
ImGuiFullscreen::SetTheme();
|
ImGuiFullscreen::SetTheme();
|
||||||
ImGuiFullscreen::UpdateLayoutScale();
|
ImGuiFullscreen::UpdateLayoutScale();
|
||||||
|
|
||||||
if (!ImGuiManager::AddFullscreenFontsIfMissing() || !ImGuiFullscreen::Initialize("fullscreenui/placeholder.png") ||
|
if (!ImGuiManager::AddFullscreenFontsIfMissing() || !ImGuiFullscreen::Initialize("images/placeholder.png") ||
|
||||||
!LoadResources())
|
!LoadResources())
|
||||||
{
|
{
|
||||||
DestroyResources();
|
DestroyResources();
|
||||||
|
@ -437,7 +415,6 @@ bool FullscreenUI::Initialize()
|
||||||
s_was_paused_on_quick_menu_open = false;
|
s_was_paused_on_quick_menu_open = false;
|
||||||
s_about_window_open = false;
|
s_about_window_open = false;
|
||||||
s_hotkey_list_cache = InputManager::GetHotkeyList();
|
s_hotkey_list_cache = InputManager::GetHotkeyList();
|
||||||
// GetMTGS().SetRunIdle(true);
|
|
||||||
|
|
||||||
if (!System::IsValid())
|
if (!System::IsValid())
|
||||||
SwitchToLanding();
|
SwitchToLanding();
|
||||||
|
@ -467,15 +444,14 @@ void FullscreenUI::OnSystemStarted()
|
||||||
|
|
||||||
void FullscreenUI::OnSystemPaused()
|
void FullscreenUI::OnSystemPaused()
|
||||||
{
|
{
|
||||||
if (!IsInitialized())
|
// noop
|
||||||
return;
|
|
||||||
|
|
||||||
g_host_display->SetVSync(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FullscreenUI::OnSystemResumed()
|
void FullscreenUI::OnSystemResumed()
|
||||||
{
|
{
|
||||||
// noop
|
// get rid of pause menu if we unpaused another way
|
||||||
|
if (s_current_main_window == MainWindowType::PauseMenu)
|
||||||
|
ClosePauseMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FullscreenUI::OnSystemDestroyed()
|
void FullscreenUI::OnSystemDestroyed()
|
||||||
|
@ -505,7 +481,15 @@ void FullscreenUI::PauseForMenuOpen()
|
||||||
{
|
{
|
||||||
s_was_paused_on_quick_menu_open = (System::GetState() == System::State::Paused);
|
s_was_paused_on_quick_menu_open = (System::GetState() == System::State::Paused);
|
||||||
if (g_settings.pause_on_menu && !s_was_paused_on_quick_menu_open)
|
if (g_settings.pause_on_menu && !s_was_paused_on_quick_menu_open)
|
||||||
Host::RunOnCPUThread([]() { System::PauseSystem(true); });
|
{
|
||||||
|
Host::RunOnCPUThread([]() {
|
||||||
|
System::PauseSystem(true);
|
||||||
|
|
||||||
|
// force vsync on when pausing
|
||||||
|
if (g_host_display)
|
||||||
|
g_host_display->SetVSync(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
s_pause_menu_was_open = true;
|
s_pause_menu_was_open = true;
|
||||||
}
|
}
|
||||||
|
@ -635,7 +619,7 @@ void FullscreenUI::ReturnToMainWindow()
|
||||||
|
|
||||||
bool FullscreenUI::LoadResources()
|
bool FullscreenUI::LoadResources()
|
||||||
{
|
{
|
||||||
s_app_icon_texture = LoadTexture("fullscreenui/duck.png");
|
s_app_icon_texture = LoadTexture("images/duck.png");
|
||||||
|
|
||||||
s_fallback_disc_texture = LoadTexture("fullscreenui/media-cdrom.png");
|
s_fallback_disc_texture = LoadTexture("fullscreenui/media-cdrom.png");
|
||||||
s_fallback_exe_texture = LoadTexture("fullscreenui/applications-system.png");
|
s_fallback_exe_texture = LoadTexture("fullscreenui/applications-system.png");
|
||||||
|
@ -5796,3 +5780,104 @@ void DrawDebugDebugMenu()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// "Lightweight" version with only notifications for Android.
|
||||||
|
namespace FullscreenUI {
|
||||||
|
static bool s_initialized = false;
|
||||||
|
static bool s_tried_to_initialize = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::Initialize()
|
||||||
|
{
|
||||||
|
if (s_initialized)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (s_tried_to_initialize)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ImGuiFullscreen::SetTheme();
|
||||||
|
ImGuiFullscreen::UpdateLayoutScale();
|
||||||
|
|
||||||
|
if (!ImGuiManager::AddFullscreenFontsIfMissing() || !ImGuiFullscreen::Initialize("images/placeholder.png"))
|
||||||
|
{
|
||||||
|
ImGuiFullscreen::Shutdown();
|
||||||
|
s_tried_to_initialize = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
s_initialized = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::IsInitialized()
|
||||||
|
{
|
||||||
|
return s_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::HasActiveWindow()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OnSystemStarted()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OnSystemPaused()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OnSystemResumed()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OnSystemDestroyed()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OnRunningGameChanged()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::OpenPauseMenu()
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::OpenAchievementsWindow()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::OpenLeaderboardsWindow()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::Shutdown()
|
||||||
|
{
|
||||||
|
ImGuiFullscreen::Shutdown();
|
||||||
|
s_initialized = false;
|
||||||
|
s_tried_to_initialize = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullscreenUI::Render()
|
||||||
|
{
|
||||||
|
if (!s_initialized)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ImGuiFullscreen::UploadAsyncTextures();
|
||||||
|
|
||||||
|
ImGuiFullscreen::BeginLayout();
|
||||||
|
ImGuiFullscreen::EndLayout();
|
||||||
|
ImGuiFullscreen::ResetCloseMenuIfNeeded();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // __ANDROID__
|
||||||
|
|
Loading…
Reference in a new issue