// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #if PLATFORM_GDK #include "Engine/Platform/Win32/Win32Platform.h" /// /// The GDK platform implementation and application management utilities. /// class FLAXENGINE_API GDKPlatform : public Win32Platform { public: /// /// Win32 application windows class name. /// static const Char* ApplicationWindowClass; /// /// Handle to Win32 application instance. /// static void* Instance; static Delegate<> Suspended; static Delegate<> Resumed; public: /// /// Returns true if current OS version is Windows 10. /// static bool IsWindows10() { return true; } /// /// Pre initialize platform. /// /// The Win32 application instance. static void PreInit(void* hInstance); static bool IsRunningOnDevKit(); static void SignInSilently(); static void SignInWithUI(); static User* FindUser(const struct XUserLocalId& id); public: // [Win32Platform] static bool Init(); static void LogInfo(); static void BeforeRun(); static void Tick(); static void BeforeExit(); static void Exit(); #if !BUILD_RELEASE static void Log(const StringView& msg); static bool IsDebuggerPresent(); #endif static BatteryInfo GetBatteryInfo(); static int32 GetDpi(); static String GetUserLocaleName(); static String GetComputerName(); static bool GetHasFocus(); static bool CanOpenUrl(const StringView& url); static void OpenUrl(const StringView& url); static Float2 GetDesktopSize(); static void GetEnvironmentVariables(Dictionary& result); static bool GetEnvironmentVariable(const String& name, String& value); static bool SetEnvironmentVariable(const String& name, const String& value); static Window* CreateWindow(const CreateWindowSettings& settings); static void* LoadLibrary(const Char* filename); static void FreeLibrary(void* handle); static void* GetProcAddress(void* handle, const char* symbol); }; #endif