Import theme from roblox and fix x11

vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
This commit is contained in:
komaruworld committed 2026-08-31 21:42:35 +03:00
1 parent d5f9c91358
commit 035c7fe1d4
19 files changed
+244 -31

No files matched your search

@@ -3,6 +3,7 @@
#include <cstdint>
#include <filesystem>
#include <optional>
#include <string>
#include <string_view>
@@ -38,6 +39,20 @@ PlatformCacheMigrationResult MigratePlatformProfileCaches(
const Environment& environment, const RuntimePaths& paths,
std::string_view desired_revision);
struct RobloxThemeCacheResult {
std::optional<bool> dark_theme;
std::string error;
explicit operator bool() const { return error.empty(); }
};
// Reads the current account's Roblox theme without changing appStorage. A
// missing value leaves dark_theme empty so the caller can use Roblox's own
// startup default.
RobloxThemeCacheResult ReadRobloxThemeCache(
const std::filesystem::path& app_storage_file,
std::int64_t authenticated_user_id);
// Synchronizes only Roblox's local theme keys with the resolved host theme.
bool ApplyRobloxThemeCacheOverride(
const std::filesystem::path& app_storage_file,
+4 -3
View File
@@ -20,14 +20,15 @@ struct DesktopAppPolicyResult {
explicit operator bool() const { return error.empty(); }
};
// Normalizes only Roblox UniversalApp layout coordinates for a PC profile.
// Account eligibility and feature-entitlement fields remain server-owned.
// Normalizes Roblox UniversalApp layout coordinates for a PC profile and
// applies a fixed theme only when configured. Account eligibility and
// feature-entitlement fields remain server-owned.
// The guest and authenticated cache keys are both populated so user-switch
// startup cannot fall back to the Android Unknown/mobile layout.
DesktopAppPolicyResult ApplyDesktopAppPolicy(
const std::filesystem::path& app_storage_file,
const std::filesystem::path& default_policy_file,
std::int64_t authenticated_user_id);
std::int64_t authenticated_user_id, std::string_view theme_mode);
// Routes the normalized policy through Roblox's supported runtime override so
// a later GUAC response cannot replace the in-memory desktop layout with the
+3 -3
View File
@@ -87,8 +87,8 @@ class RuntimeConfig {
const WindowConfig& window() const { return window_; }
const std::string& theme_mode() const { return theme_mode_; }
bool theme_mode_valid() const {
return theme_mode_ == "system" || theme_mode_ == "light" ||
theme_mode_ == "dark";
return theme_mode_ == "roblox" || theme_mode_ == "system" ||
theme_mode_ == "light" || theme_mode_ == "dark";
}
const InputCapabilityConfig& input_capabilities() const {
return input_capabilities_;
@@ -139,7 +139,7 @@ class RuntimeConfig {
GraphicsBackend graphics_backend_ = GraphicsBackend::kVulkan;
std::string graphics_backend_name_ = "direct-vulkan";
WindowConfig window_;
std::string theme_mode_ = "system";
std::string theme_mode_ = "roblox";
InputCapabilityConfig input_capabilities_;
DeviceProfile device_profile_ = *FindDeviceProfile(kDefaultDeviceProfileName);
bool device_profile_valid_ = true;